c语言基本的位操作
1、特定位置0用位与&
构造一个特定位为0,其他位为1的数,再与被操作数进行&操作
2、特定位置1用位或|
构造一个特定位为1,其他位为0的数,再与被操作数进行|操作
3、特定位取反用异或^
构造一个特定位为1,其他位为0的数,再与被操作数进行^操作
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 void dectobin(unsigned int n)//在网上找的10进制转2进制的算法
5 {
6 int result = 0,k = 1,i,temp;
7 temp =n;
8 while(temp)
9 {
10 i = temp%2;
11 result = k*i + result;
12 k = k*10;
13 temp = temp/2;
14 }
15 printf("%d\n",result);
16 }
17
18
19 int main(int argc,char* argv[])
20 {
21 int a = 0xf;
22 dectobin(a);
23 //将bit0-2置0
24 a &= (~((1<<0) | (1<<1) | (1<<2)));//先构造一个bit0-2为0其他位为1的数,然后在进行&运算
25 dectobin(a);
26
27 //将bit7 bit2 bit9置1
28 a |= ((1<<7) | (1<<2) | (1<<9));//先构造一个bit7,2,9为1其他位为0的数,然后在进行|运算
29 dectobin(a);
30 return 0;
31 }
运行结果:1111
1000
1010001100