给定两个32位的整数n和m,将m插进n的j到i的位置,n其他位置不变

来源:互联网 发布:天龙抢号软件 编辑:程序博客网 时间:2024/05/20 07:58
int updateBits(int n,int m,int i,int j){
int allones=~0;//等同于一连串的1
int left=allones<<j+1;//在位置j之前的位置都为1
int right=((1<<i)-1);//在位置i之后的位置都为1
int mask=left|right;//除i到j的位置为0,其余均为1
int n_cleared=n&mask;//清楚位置j到i的位置
int m_shifted=m<<i;//将m移动到相应的位置
return n_cleared|m_shifted;//对两者执行位或操作
}//给定两个32位的整数n和m,将m插进n的j到i的位置,n其他位置不变
0 0
原创粉丝点击