C语言:位操作----将某一位置1或置0

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;
}

运行结果如下:
在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/MQ0522/article/details/129717618
今日推荐