老师告诉我们,对于考试1000 0001,二进制数有2种含义。 一个表示 -127(有符号),即从 -127 到 127另一个是无符号数,从0到256
如果我有一个二进制数字,例如 1000 0001 ,计算器仅显示有符号数字 (-127)。 我怎么知道这个二进制数代表的无符号数字是什么?
有符号和无符号数字具有完全相同的位!
在计算器中,您可以显示为十六进制 (0xff)。 是否要解释十六进制数字和"有符号"或"无符号"取决于您。
在 x86 汇编程序中,您可以检查 CPU 状态标志中的"符号位"。
查看本教程:
有符号数字与无符号数字
无符号数字最容易从二进制解释;只需将位表示的所有值相加(在数字1000 0001
=129的情况下2^7+2^0
)。
签名的解释几乎相同,只是先多走了一步:如果前导数字是 1
,则反转所有位(在本例中为 0111 1110
)并将1
添加到结果中,得到负数的(绝对)值(在本例中0111 1111
=127)
要测试您是否正确执行,请再次执行相同的操作,您应该最终得到原始数字。