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