222 字
1 分钟
位操作符(&、|、^) C语言
操作符(一)
对于整形来说:数据存放内存中其实存放的是补码。
& 按位与
‘’&”是将两个数的二进制补码进行比较,若补码中的对位都为“1”则位“1”,反之为”0“
代码如下:
int main(){ int num1 = 19; int num2 = 6; int ret = num1 & num2;
// 19 -->00000000000000000000000000010011 // 6 -->00000000000000000000000000000110 //ret -->00000000000000000000000000000010 -->2
printf("%d\n", ret); //打印ret for (int i = 31; i >=0; i--) { printf("%d", (ret >> i) % 2); } //打印ret二进制 return 0;}”&“牢记有 0 则 0
| 按位或
‘’|”是将两个数的二进制补码进行比较,若补码中的对位都为“0”则位“0”,反之为”1“
这恰好与”&“相仿
代码如下:
int main(){ int num1 = 19; int num2 = 6; int ret = num1 | num2;
// 19 -->00000000000000000000000000010011 // 6 -->00000000000000000000000000000110 //ret -->00000000000000000000000000010111 -->23
printf("%d\n", ret); //打印ret for (int i = 31; i >=0; i--) { printf("%d", (ret >> i) % 2); } //打印ret二进制,以验证 return 0;}”|“牢记有 1 则 1
^ 按位异或
‘’^”是将两个数的二进制补码进行比较,若补码中的对位相同则位“0”,反之为“1”
代码如下:
int main(){ int num1 = 19; int num2 = 6; int ret = num1 ^ num2;
// 19 -->00000000000000000000000000010011 // 6 -->00000000000000000000000000000110 //ret -->00000000000000000000000000010101 -->21
printf("%d\n", ret); //打印ret for (int i = 31; i >=0; i--) { printf("%d", (ret >> i) % 2); } //打印ret二进制,以验证 return 0;}“^“牢记相同为”0”,不同为”1”
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
位操作符(&、|、^) C语言
https://blog.csdn.net/GenshiN__IMPACt_/article/details/132677687 部分信息可能已经过时
相关文章 智能推荐
1
用C语言构造扫雷游戏
C语言 使用 C 语言分模块实现控制台扫雷游戏,包括棋盘初始化、布雷、排雷、周边雷数统计和胜负判断。
2
C语言的分支语句( if 与 switch语句 )
C语言 介绍 C 语言 if、else 与 switch 分支语句的语法和执行逻辑,并通过实例比较不同分支结构的适用场景。
3
用C语言解答林尼的题目
C语言 将“林尼的题目”建模为枚举与条件判断问题,使用 C 语言逐步筛选并求出符合约束的饮料排列。
4
C语言的循环语句(while,for与 do-while循环)
C语言 系统梳理 C 语言 while、for 和 do-while 循环的语法、执行流程、循环控制及典型练习。
5
指针运算笔试题解析(1)
C语言 结合常见笔试题讲解数组、地址、解引用和 sizeof 等场景中的指针运算与结果判断。