我想知道如何将二进制补码的定点算术转换为十进制数。假设我们有一个带有位编号的二进制补码:11001011,小数点后有2个位置,并且希望将其转换为十进制数。由于第一位是1,因此我们已经知道十进制将是负数。小数点后2位,因此我们有110010 11。将它从二进制补码转换为正常形式(减去1,反转):110010 10(我在这里减去了1),001101 01(我在这里反转)。十进制中的001101是13,十进制中的01是1。因此,最终结果为-13.1。是否正确或者根本没有办法进行转换?
110010 10
:11001010 = -54
按比例因子除以 2^2:
-54 / 4 = -13.5
10
将为小数部分提供+0.5
,即00
=0.0
,01
=+0.25
,10=+0.5
,11=+0.75
。)一个小提示(但在理解您的问题时非常重要)- 当您说“小数点”时,您真正意思是十进制吗?还是指“二进制”点? 换句话说,如果它是一个小数点,您可以在转换为十进制后将其放在后面,以查看小数点右边应保留多少十进制位数,但是如果您指的是二进制点,则表示二进制表示中有多少位表示分数部分。 在您的例子中,似乎您指的是二进制点,然后整数部分是001101(二进制)= 13(十进制),而小数部分是0.01(二进制)= 0.25(十进制),因为小数点右侧的第一位代表1/2,第二位代表1/4等等,并且整个内容被否定。 因此,最终结果将是-13.25