数学
求一个原码真值的问题若码值FFFFH是一个整数的原码表示,则该整数的真值为 (1) ;若码值FFFFH是一个整数的补码表示,则该整数的真值为 (2) .1、 FFFFH是原码,答案为什么不是16^4+16^3+16^2+16? 而是-32767

2019-05-27

求一个原码真值的问题
若码值FFFFH是一个整数的原码表示,则该整数的真值为 (1) ;若码值FFFFH是一个整数的补码表示,则该整数的真值为 (2) .
1、 FFFFH是原码,答案为什么不是16^4+16^3+16^2+16? 而是-32767
优质解答
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了…… 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了……
相关问答