永发信息网

【byte】有符号byte范围如何计算?我已经知道它是-128~127不...

答案:2  悬赏:0  手机版
解决时间 2021-03-07 20:13
  • 提问者网友:浮克旳回音
  • 2021-03-06 21:40
【byte】有符号byte范围如何计算?我已经知道它是-128~127不...
最佳答案
  • 五星知识达人网友:猎心人
  • 2021-03-06 21:49
【答案】 首先,难不免干点白痴般地事情,穷举一下...
  正数,原码跟补码一样
  +127,0111 1111
  +126,0111 1110
  +125,0111 1101
  +124,0111 1100
  +123,0111 1011
  +122,0111 1010
  ...
  +4,0000 0100
  +3,0000 0011
  +2,0000 0010
  +1,0000 0001
  0,0000 0000 (无正负之分)
  下面是负数了,值,原码,符号位不变其它取反,+1
  -1,1000 0001,1111 1110,1111 1111
  -2,1000 0010,1111 1101,1111 1110
  -3,1000 0011,1111 1100,1111 1101
  -4,1000 0100,1111 1011,1111 1100
  -5,1000 0101,1111 1010,1111 1011
  -6,1000 0110,1111 1001,1111 1010
  -7,1000 0111,1111 1000,1111 1001
  -8,1000 1000,1111 0111,1111 1000
  -9,1000 1001,1111 0110,1111 0111
  -10,1000 1010,1111 0101,1111 0110
  -11,1000 1011,1111 0100,1111 0101
  -12,1000 1100,1111 0011,1111 0100
  -13,1000 1101,1111 0010,1111 0011
  -14,1000 1110,1111 0001,1111 0010
  -15,1000 1111,1111 0000,1111 0001
  -16,1001 0000,1110 1111,1111 0000
  -17,1001 0001,1110 1110,1110 1111
  ...
  -24,1001 1000,1110 0111,1110 1000
  ...
  -99,1110 0011,1001 1100,1110 0100
  ...
  -124,1111 1100,1000 0011,1111 1101
  -125,1111 1101,1000 0010,1000 0011
  -126,1111 1110,1000 0001,1000 0010
  -127,1111 1111,1000 0000,1000 0001
  看出点什么了没有?
  如果没有,那么,给个提示,再继续下去,下一个补码是什么呢?
  当然是
  -128,先略过,再略过,1000 0000
  1000 0000,那么,它的原码是什么呢?
  从补码求原码的方法跟原码求补码是一样的
  先保留符号位其它求反:1111 1111,再加1:11000 0000,超过了8位了
  对,用8位数的原码在这里已经无法表示了
  关键就在这里,补码 1000 0000 为 -128 是不用怀疑的(上面的穷举),
  那么,回到原码处,它的原码也是 1000 0000(超出的自动丢失),
  1000 0000 在原码表示什么呢?-0,但补码却规定0没有正负之分
  转换一下思路,看看计算机里,是怎么运算的:
  对于负数,先取绝对值,然后求反,加一
  -128 -> 128 -> 1000 0000 -> 0111 1111 -> 1000 0000
  现在明确了吧
  所以,8位有符号的整数取值范围的补码表示
  1000 0000 到 0000 0000,再到 0111 1111
  即 -128 到 0,再到 127
  最终 -128 +127
全部回答
  • 1楼网友:摆渡翁
  • 2021-03-06 22:07
谢谢了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯