我想知道我们如何用8位表示法来表示-128 ?得到这个疑问的原因是-128二进制形式的表示法是1000。在这个MSB是1,它是符号位,震级是0,不是-128,解决这个问题的方法是什么?
发布于 2022-03-13 10:09:23
在这个MSB是1,这是符号位,大小是0,这不是-128。
这正是二补有符号二进制整数的工作方式。基本上,位定义一个值,当符号位被设置时,我们从值中减去256 (对于一个8位值)(逻辑上,而不是字面上的)。无符号模式1000 0000定义值128。如果你把它当作无符号,你会看到符号位被设置,所以你从它中减去256,得到-128。无符号模式1000 0001定义了129号数字。作为一个有符号的数字,再次因为符号位被设置,你从它中减去256,得到-127。诸若此类。
https://stackoverflow.com/questions/71455619
复制相似问题