C语言 基础开发----目录
前期准备
想要将将某一位置1或置0,需要进行位操作。
此次需要用到 与(&),或(|),左移(<<)和右移(>>) 这四个位操作。
具体位操作说明:C语言:位运算符----与(&),或(|),非(~),异或(^),左移(<<)和右移(>>)
某一位----置1
或(|) 的特性:有1为1,双0为0。
1 或(|) 任何数都得 1,可以实现 位置1操作。
0 或(|) 任何数都得 任何数,可以实现位置1操作时,其他位不受影响。
再使用左移和右移操作,就可以实现任意一位的置1操作。
具体代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
int m = 0x93; //0x93 二进制: 1001 0011
int a = m|(1<<3); //0x9b 二进制:1001 1011
printf("a=0x%x\n",a);
return 0;
}
运行结果如下:
某一位----置0
与(&) 的特性:有0为0,双1为1。
0 与(&) 任何数都得 0,可以实现 位置0操作。
1 与(&) 任何数都得 任何数,可以实现位置0操作时,其他位不受影响。
再使用左移和右移操作,就可以实现任意一位的置0操作。
具体代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
int m = 0x93; //0x93 二进制: 1001 0011
int a = m&(~(1<<4)); //0x83 二进制:1000 0011
printf("a=0x%x\n",a);
return 0;
}
运行结果如下: