美文网首页
按位运算符&、|、^、~、<<、>>

按位运算符&、|、^、~、<<、>>

作者: 超级卡布达 | 来源:发表于2020-12-15 15:38 被阅读0次

按位运算符都是对二进制进行计算

1.按位与运算符 &(类似逻辑运算符&&):只有对应的两个二进位均为1时,结果才为1,否则为0.

比如11&25 = 9
01011 : 11
11001 : 25


01001 :9

2.按位或运算符 | (类似逻辑运算符||):只要对应的两个二进位有一个为1时,结果位就为1,否则为0.

比如11 | 25 = 27
01011 : 11
11001 : 25


11011 : 27

3.按位异或 ^:当对应的二进位相异(不相同)时,结果为1,否则为0.

比如11 ^25 = 18
01011 : 11
11001 : 25


10010 : 18
规律:相同数值相 ^ 的结果是0,比如6 ^ 6 = 0.
任何数值跟0进行 ^ ,结果还是原来的数值.9 ^ 0=9
多个整数相^的结果跟顺序无关,比如5 ^ 6 ^ 7 = 5 ^ 7 ^ 6.
因此得出结论:a ^ b ^ a = b ,a ^ a=0在0 ^ b = b.

4.按位取反 ~:对整数的各二进位进行取反,0变1,1变0

比如9,~9取反为-10
八个字节
0000 0000 0000 0000 0000 0000 0000 1001
取反
1111 1111 1111 1111 1111 1111 1111 0110
求负数:再取反+1
1000 0000 0000 0000 0000 0000 0000 1001 +1 等于 1000 0000 0000 0000 0000 0000 0000 1010(-10)

5.按位左移运算符 <<:把整数a的各二进位全部左移n位,离位抛弃,低位补0.左移n位其实就是乘以2的n次方。由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出去的结果值可能会改变正负性。a*2的n次方

比如9 << 1
0000 0000 0000 0000 0000 0000 0000 1001 :9
八个字节向左挪1位,高位抛弃低位补0
000 0000 0000 0000 0000 0000 0000 10010 :18

6.按位右移运算符 >>:把整数a的各二进位全部右移n位。保持符号位不变。右移n位其实就是除以2的n次方

为正数时,符号位为0,最高位补0.
为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。
比如 9 >> 1
0000 0000 0000 0000 0000 0000 0000 1001 :9
八个字节向左挪1位,高位抛弃低位补0
00000 0000 0000 0000 0000 0000 0000 100 :4

相关文章

  • 基础运算符

    [使1. 按位与运算符(&](#1. 按位与运算符(&)[按位或运算符 | ](#2. 按位或运算符(|)) 1....

  • 高级运算符(Advanced Operators)

    目录 [toc] 位运算符 1. 按位取反运算符~ 2. 按位与运算符& 3. 按位或运算符| 4. 按位异或运算...

  • 高级运算符

    1:位运算 1.1:按位取反运算符(~) 例子 1.2:按位与运算符 例子 1.3:按位或运算符 例子 1.4:按...

  • 位运算符

    按位运算符有6个 & 按位与| 按位或^按位异或~取反>>右移<<左移 1 、& 运算符 &是二元运算符,它以特定...

  • C、数据结构知识点

    1. 位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算...

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • C语言-按位逻辑运算符和位移运算符

    按位逻辑运算符 按位与运算符(bitwise AND operator) a & b 按位计算a和b的逻辑与; 按...

  • 理解C语言位运算符

    位运算符 位运算符包括:& 、|、^、~、<<、>> 分析 & 按位与操作,按二进制位进行"与"运算。| 按位或运...

  • C语言位运算符及常见用法

    一、位运算符C语言提供了六种位运算符:# & 按位与| 按位或^ 按位异或~ 取反<< 左移 >>右移 ...

  • C语言专题-位运算符和逻辑运算符

    位运算符 位运算符:按位与,按位或,按位非,按位亦或 1.按位与: &都为1则为1 2.按位或: |有一个为1 ...

网友评论

      本文标题:按位运算符&、|、^、~、<<、>>

      本文链接:https://www.haomeiwen.com/subject/zrtwgktx.html