数据的编码

有符号数的三种8位编码方式,其中二进制整数最终都是以补码的形式出现的。

正数/负数原码反码补码
10000 00010000 00010000 0001
-11000 00011111 11101111 1111
20000 00100000 00100000 0010
-21000 00101111 11011111 1110
+00000 00000000 00000000 0000
-01000 00001111 11110000 0000
-128无法表示无法表示1000 0000

带符号移位运算(正数左右移都是补0,负数左移补0右移补1)

正数/负数向左移 << 1位向右移 >> 1
正数(35的补码00100011)01000110 = 7000010001 = 17
负数(-35的补码11011101)10111010 = -7011101110 = -18
正数(99的补码01100011)11000110 = -58(正变负)00110001 = 49
负数(-99的补码10011101)00111010 = 58(负变正)11001110 = -50

无符号移位运算(只存在无符号右移,高位补0,且符号位失去作用)

正数/负数向右移 >>> 1位向右移 >>> 2 位向右移 >>> 3 位
正数(35的补码00100011)00010001 = 1700001000 = 80000100 = 4
负数(-35的补码11011101)01101110 = 11000110111 = 5500011011 = 27
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值