问题描述
我有一个关于二进制补码表示的问题,问题是将十进制数 7710 转换为 8 位二进制二进制补码:
7710 divide by 2 = 3855 remainder 0
3855 divide by 2 = 1927 remainder 1
1927 divide by 2 = 963 remainder 1
963 divide by 2 = 481 remainder 1
481 divide by 2 = 240 remainder 1
240 divide by 2 = 120 remainder 0
120 divide by 2 = 60 remainder 0
60 divide by 2 = 30 remainder 0
30 divide by 2 = 15 remainder 0
15 divide by 2 = 7 remainder 1
7 divide by 2 = 3 remainder 1
3 divide by 2 = 1 remainder 1
1 divide by 2 = 0 remainder 1
7710 = 1111000011110
1111000011110 + 1 = 1111000011111
我已经找到了该值,但我的问题是如何以 8 位的形式表示它?
谢谢
解决方法
你不能。 8 位二进制补码数只能表示 [-128;127] 范围内的数。 7710不在这个范围内,无法代表。
为什么-128?因为 100 0000 是您可以表示的最低数字,而十进制表示为 -128。
为什么是127?因为 0111 1111 是您可以表示的最大数字,即十进制表示中的 127。