C语言之C语言的底层操作 (2)

2008-02-23 05:33:44来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

 问题:按位运算符

  C语言和其他高级语言不同的是他完全支持按位运算符。这和汇编语言的位操作有些相似。 C中按位运算符列出如下:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  操作符 作用

  ────────────────────────────

  & 位逻辑和

    位逻辑或

  ^ 位逻辑异或

  - 位逻辑反

  >> 右移

  << 左移

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  注意:

  1、 按位运算是对字节或字中的实际位进行检测、配置或移位, 他只适用于字符型和整数型变量连同他们的变体, 对其他数据类型不适用。

  2、 关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果能够取0或1以外的值。 要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为真(两个非零值相和仍为非零), 而x&8的值为0。

  3、   和   ,&和&&,~和! 的关系

  &、  和 ~ 操作符把他们的操作数当作一个为序列,按位单独进行操作。比如:10 & 12 = 8,这是因为"&"操作符把 10 和 12 当作二进制描述 1010 和 1100 ,所以只有当两个操作数的相同位同时为 1 时,产生的结果中相应位才为 1 。同理,10   12 = 14 ( 1110 ),通过补码运算,~10 = -11 ( 11...110101 )。<以多少为一个位序列> &&、   和!操作符把他们的操作数当作"真"或"假",并且用 0 代表"假",任何非 0 值被认为是"真"。他们返回 1 代表"真",0 代表"假",对于"&&"和"  "操作符,假如左侧的操作数的值就能够决定表达式的值,他们根本就不去计算右侧的操作数。所以,!10 是 0 ,因为 10 非 0 ;10 && 12 是 1 ,因为 10 和 12 均非 0 ;10    12也是 1 ,因为 10 非 0 。并且,在最后一个表达式中,12 根本就没被计算,在表达式 10    f( ) 中也是如此。



标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 1.2 C 语言的特点

下一篇: C语言之C语言的底层操作 (1)

热门词条
热门标签