C语言中”|”和”||”、”&”和”&&”的区别

作者: paranoid 分类: C语言 发布时间: 2019-01-12 22:12

“|” “&” 表示位运算,针对数值进行的运算,例如 3 | 2 、78 & 99,其结果仍然应为值数。

“||”“ &&”表示逻辑运算,“||”表示或者的意思,“&&” 表示并且的意思,例如  33>44 || “abcd”==”abcd”,其结果是逻辑值true或false。即真或假。

理解位运算,首先要知道,计算机里面所有的东西,都是以二进制来储存的。

比如现在我想要运算,10|3,我需要把7和3都转化为二进制,即1010和11,为方便观看,将11补位为0011。

1010

0011

“|”号运算过程中,两边的值对相应的位置进行互补,合并完就是1011,再将它转换回十进制, 即10|3=11

“&”号运算过程,只取两边的值对应位置的相同部分,例如10&3,可以看到,相同的位置只有第三位,那么取出来的结果是10,转换为十进制就是2。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注