Go语言入门之位运算

位运算介绍

位运算时需要知道几个概念,原码、补码、反码。正数在计算机中存储的是二进制的原码,负数在计算机中实际存储的是负数的补码。

1、原码

  • 正数的原码还是正数
  • 负数的原码是负数绝对值的二进制表示
  • 以8位二进制方式表示(16位、32位、64位同理)
    在这里插入图片描述

2、反码

  • 正数的反码还是正数
  • 负数的反码是负数的原码的所有位取反
    在这里插入图片描述

3、补码

  • 正数的补码还是正数
  • 负数的补码为负数的反码加1,负数的补码就是负数在计算机中的二进制表示方式
    在这里插入图片描述
    由上可知正数的原码、反码、补码都是一样的,即为其二进制表示。
    从一个负数的原码不能看出是否为负数,但是从反码、补码中都能看出,最高位为符号位1表示负,0表示正。
    负数的原码(负数绝对值的二进制表示)所有位取反——反码;负数的反码+1——补码
    负数的补码-1——反码;负数反码-1——原码

4、go语言中的位运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再详细介绍下a=3,b=2进行位清空操作
a的补码是0000 0011,b的补码是1111 1110 位清空操作:0000 0011 &^ 1111 1110
0000 0011 左侧
1111 1110 右侧 (右侧0左侧不变,右侧1左侧清0)
0000 0001 位清空的结果的补码最后运算结果是1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值