美文网首页
位运算符

位运算符

作者: 举个小栗子0317 | 来源:发表于2021-04-23 14:44 被阅读0次

    int a =129;

    int b =128;

    1.与a & b

    两个位都为1,结果才为1,否则结果为0。

    a 的值是129,转换成二进制就是10000001,而 b 的值是128,转换成二进制就是10000000。结果是10000000,即128。

    2.或a | b

    两个位只要有一个为1,那么结果就是1,否则就为0。

    a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,结果是10000001,即129。

    3.非~a

    如果位为0,结果是1,如果位为1,结果是0。

    a 的值是129,转换成二进制就是10000001,取非结果是01111110,即-130。

    4.异或a^b

    两个操作数的位,相同则结果为0,不同则结果为1。

    a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,结果是00000001,即1。

    5.<<左移

    将对象向左移动指定的位数(在右边补0)。

    例:8<<3  (8乘(2的3次方))

    8的二进制:00001000,左移两位后:01000000 = 64。   -8<<3 = -64

    6.>>右移

    将对象向右移动指定的位数(左边正数用0填补,负数用1填补)。

    例:64 >>3(8除(2的3次方))

    64的二进制:01000000,右移两位后:00001000 = 8。    -64<<3=-8

    7.>>>无符号右移

    将对象向右移动指定的位数(左边用0填补)。

    8,反码 + 1 = 补码,负数的二进制 为 正数的二进制的补码

    20 的二进制: 00000000000000000000000000010100。

    其反码表示: 11111111111111111111111111101011。

    反码 + 1: 11111111111111111111111111101100。(即-20)

    相关文章

      网友评论

          本文标题:位运算符

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