求一个原码真值的问题若码值FFFFH是一个整数的原码表示,则该整数的真值为 (1) ;若码值FFFFH是一个整数的补码表

求一个原码真值的问题
若码值FFFFH是一个整数的原码表示,则该整数的真值为 (1) ;若码值FFFFH是一个整数的补码表示,则该整数的真值为 (2) .
1、 FFFFH是原码,答案为什么不是16^4+16^3+16^2+16? 而是-32767
涂浩泊 1年前 已收到1个回答 举报

imaskar 幼苗

共回答了10个问题采纳率:80% 举报

FFFF表示的值是15x16^3+15x16^2+15x16^1+15,显然不是你给出的16^4+16^3+16^2+16.FFFF=15x16^3+15x16^2+15x16^1+15=65535,而答案为什么是-32767呢?这就是“规定”!原因是最高位只是个表示正数负数的符号(就像我们书写十进制数前面的+-一样),而并非是数据位!看,FFFF的有交数据位是7FFF,这不就是32767吗?最高位是1表示负,那么若是原码不就是-32767了嘛!而若是补码则真值是8001,那就是-1了……

1年前 追问

5

涂浩泊 举报

FFFF怎么就变成7FFF了啊? 十六进制的最大值不是 FFFF FFFF 么,怎么就到最高位了? 还有一半呢?

举报 imaskar

你并没有说这是多少位整型啊,我当然根据题面分析以为是16位整型了。如果你的是32位整型平台,那FFFF就没有别的选择只能是正数65535,怎么会出现-32767呢?从答案是-32767完全可以断定题目是按16位整型平台出的……
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.761 s. - webmaster@yulucn.com