首页 > 其他 > 详细

2.2位运算

时间:2020-04-04 23:34:38      阅读:62      评论:0      收藏:0      [点我收藏+]

一.  常见的布尔运算

①~逻辑运算非:即取反,~0=1;~1=0;

②&逻辑运算与:当且仅当a和b都为1,a&b才为1;

③^逻辑运算异或:a和b不同值则为1,相同则为0

④ | 逻辑运算或:当且仅当a和b都为0,才为0

二.C语言中的运算

①移位运算

左移 <<:将二进制整体左移,丢弃最高位,低位补0

逻辑右移>>: 对应于无符号数的操作,二进制数整体右移,丢弃低位,在左端高位补0

算术右移 >>:整体右移,在左端的n个高位补原本二进制数最高有效位的值

例:

          x=1001 0101
x<<4:       0101 0000
x>>4:       0000 1001 (逻辑右移)
x>>4:       1111 1001 (算术右移) 

②位级运算

布尔运算可以在任何整数的数据类型中使用,如char和int

例:

~0x41——>[0100 0001]——> [1011 1110]
~0x00——>[0000 0000]——>[1111 1111]
[0110 1001]&[0101 0101]——>[0100 0001]
[0110 1001]|[0101 0101]——>[0111 1101]

③逻辑运算

不同于位级运算,运算符分别为&&,||,!,对应于与,或,非,其中,所有非0的参数都表示为true,所以为0的参数都是false;

p||q,若p被判断出是true,则直接跳过对q的判断,得出结果为true;p&&q,若p被判断为false,则直接跳过对q的判断,得出结果为false,即所谓短路功能。

例:

!0x51=0x00 ; !0x00=0x01 ; !!0x41=0x01
0x69&&0x55=0x01 ; 0x69||0x55=0x01

  

参考资料:布尔代数以及C语言运算符

2.2位运算

原文:https://www.cnblogs.com/yuanerduo/p/12633883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!