在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
位运算符对整数在内存中的二进制位进行操作。
二、示例2.1 &参与运算的两数各对应的二进位相与。 (两位均为1才为1) 示例:
执行结果: 解释: 首先13二进制为1101,3二进制为11 因为两位均为1才为1,所以自右至左、自上而下: 1和1都为1,0和1其中一个为0不全为1所以为0,1和空不全为1所以为0,1和空不全为1所以为0,所以最终相与得0001转化为10进制为1 2.2 |参与运算的两数各对应的二进位相或。 (两位有一个为1就为1) 示例:
执行结果: 解释: 因为两位有1个为1就为1,所以自右至左、自上而下: 1和1都为1,0和1有1个为1所以为1,1和空有1个为1所以为1,1和空有1个为1所以为1,所以最终相与得1111转化为10进制为15 2.3 ^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两个对应的二进制位不一样则为1) 示例:
执行结果: 解释: 解释: 因为两位不一样就为1,所以自右至左、自上而下: 1和1两位一样所以为0,0和1两位不一样所以为1,1和空两位不一样所以为1,1和空两位不一样所以为1,所以最终相异或得1110转化为10进制为14 2.4 <<左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 注意:不论是左移还是右移,都是二进制位操作,我们这里的1也是二进制1 比如 1 << 10 具体操作原理如下: 根据原理计算方法:左移10位后,二进制为10000000000,转化为10进制为后为1024 套用公式计算方法:1*2^10=1024 代码示例:
执行结果: 巩固: 3 << 2 首先3的二进制为11,左移2位变成1100,然后将1100转换为10进制位12 代码示例:
执行结果: 2.5 >>右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。 注意:右移走的就相当于抛弃了,剩余的二级制位就是最终所得 例1: 3 >>1 答: 3的二进制为11,右移1位,1个1被右移了,相当于被抛弃了,剩余的1就是最终的二进制位。将其转换为10进制还是为1 例2: 3 >> 2 答: 3的二进制为11,右移1位,2个1被右移了,相当于被抛弃了,剩余的空(默认为0)就是最终的二进制位。将其转换为10进制还是为0 例3: 13 >>2 答: 13的二进制为1101,右移2位,0和1被右移了,相当于被抛弃了,剩余的11就是最终的二进制位。将其转换为10进制还是为3 代码示例验证:
执行结果如下: |
请发表评论