用定点补码表示纯小数,采用8位字长,编码10000000表示的十进制数是-1,请教怎么计算出来的?
问题描述:
用定点补码表示纯小数,采用8位字长,编码10000000表示的十进制数是-1,请教怎么计算出来的?
答
你怎么尽给我出难题
机器数的补码可由原码得到.若机器数为正数,则其补码与原码一样;如果机器数为负数,则其补码是对它的原码(除符号位外)各位取反,再加1而得到的(也就是对其反码再加1).也可用公式表示,若X是纯整数,则:
X 0照你这算法,-1的补码应该是11111111,这好像还是没有回答我的问题,为什么编码10000000表示的十进制数是-1?在计算机机器数的编码中,定点纯小数的格式为:b0b–1b–2b–3b–4b–5b–6b–7。其中,b0为符号位,小数点就在其后。故采用8位字长用定点补码表示纯小数,编码10000000所表示的十进制数是–1。参考方法如下:1.因为是8位字长,所以编码10000000可以理解为:“1”是符号位 “0000000(7位字长)”是数值;2.可以把符号位放在一旁,只看后面的数值,先去反然后加一,得到补码的原码“10000000”,这时在把符号位加上去,为“110000000”3.采用的是八位字长,所以即为10000000,十进制为-1.这样因该理解了吧