Go 中的二进制位移运算(位与&,位非|,位异或^)

1)原码,反码,补码

        1.二进制的最高位,是符号位,0表示整数,1表示负数

             例子:

                1 ==》 0000 0001    -1==》 1000 0001

       2.正数的原码,反码,补码都是一样的

          例子:

          1==》原码:0000 0001  反码 0000 0001 补码 0000 0001

       3。负数的原码,反码,补码

            例子:

             负数的原码

              例子:

              -1==》 1000 0001

             负数的反码【它的原码符号位不变,其他位取反(0取1,1取0)

             例子:

            -1的原码1000 0001 反码是1111 1110

             负数的补码【它的反码加1

             例子:

             -1的反码是1111 1110 他的补码是 1111 1111

            说明:-1原码【1000 0001】反码【1111 1110】补码【1111 1111】

2)位移运算(位与&,位非|,位异或^)

   位与&   对比的两个二进制,两位全是1,结果为1,否则为0

   位非|    对比的两个二进制,两位有一个是1,结果为1,否则为0

   位异或^ 对比的两个二进制,两位有一个0,一个是1 ,结果为1,否则为0

例子:2&3=? 2|3=?2^3=?-2^2=?

  

3)位运算符(>>右位移,<< 左位移)

     1,>>右位移(低位溢出,符号位不变,并用符号位补溢出的高位)

           例子:a := 1 >> 2  // 0000 0001 想右移两位 0000 000001 取8为0000 0000 结果就是0

    2,<<左位移(符号位不变,低位补0)

           例子:c := 1 << 2  // 0000 0001 想左移两位 0000 0100  结果就是4

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值