C语言位运算符

C语言位运算符,对于普通程序员来说,平时很少用到,但是对于偏开发底层的程序员来说很好用,概念也很简单,无非就是拿二进制数做各种运算。

C语言位运算符_第1张图片

 

 1.按位与&

例子:4&1

过程:先化为二进制:      100

                                  001

                             结果 000(运算法则:1&0=0,1&1=1,0&1=0,0&0=0)化为10进制结果为:0.

2.按位或 |

例子:4|1

过程:先化为二进制:      100

                                  001

                            结果 101(运算法则:1|1=1,1|0=1,0|1=1,0|0=0)化为十进制结果为:5

3.按位异或^

例子:4|1

过程:先化为二进制:      100

                                  001

                            结果 101(运算法则:1|1=0,1|0=1,0|1=1,0|0=0)化为十进制结果为:5.口号:相同为0,异为1

4.按位取反。

(1)例子:X=100;化为二进制:01100100

                    有符号下X        取反:10011011   化为十进制结果:-101

                    无符号下X        取反:10011011   化为十进制结果:65435

有符号下与无符号下取反结果都一样,但是其最高位表达的含义不同。有符号最高位若为1,则表示负号,最高位为0,则表示正号。而无符号小,不管是0还是1都只表示数字而已。

 

5.左移<<

例子:X=2.化为而进制数:00000010

则2<<2(表示2化为2进制,并且整体向左移动2个字节)结果为:00001000,化为十进制为:8

则2<<3(表示2化为2进制,并且整体向左移动3个字节)结果为:00010000,化为十进制为:16

6.右移>>

例子:X=2.化为而进制数:00000010

则2>>1(表示2化为2进制,并且整体向右移动1个字节)结果为:00000100,化为十进制为:4

则2<<2(表示2化为2进制,并且整体向右移动2个字节)结果为:00000000,化为十进制为:0

 

最后希望这篇文章对你们有帮助,如果看不懂的话,笔者建议你,好好理解一下二进制的概念,其实二进制很简单,也像十进制一样,只不过我们从小就接受十进制的教育,一下子

转到二进制进行运算,有点不太适应而已,久了就习惯了。

 

你可能感兴趣的:(C语言位运算符)