标签: assembly binary operating-system
我今天晚些时候有一个操作系统决赛,我正在查看过去的考试。无论如何长话短说我弄错了,这不是硬件问题,我只是不确定该怎么做。
“假设我们使用32位来表示实数,1位表示数字符号,7位表示指数,24位表示数字。显示数字位数为0.5”
我在考试中做的方法是将数字乘以2,保留小数点前的第一个数字,如果余数不是0,则用余数重复该过程,否则我们就完成了。
0.5 * 2 = 1.0
0 * 2 = x
回答1
但这不正确,任何人都可以帮助我完成这个过程吗?谢谢。
答案 0 :(得分:2)
假设指数上的a bias为63,尾数上隐含前导1,我将得出以下位模式:
0 0111110 000000000000000000000000(== 0x3E000000)
0 0111110 000000000000000000000000
0x3E000000
即
+(1 + 0) * power(2, 62-63)
== +1 * power(2, -1)
+1 * power(2, -1)
== +1 * 0.5 == +0.5
+1 * 0.5
+0.5
(reference)