Binary ieee格式A到格式B的取整
所以我有两个基于IEEE浮点格式的9位浮点表示 格式A:1个符号位,k=5个指数位,n=3个分数位,偏差为15 格式B:1个符号位,k=4个指数位,n=4个分数位,偏差为7 我假设将格式A转换为格式B,并使用向+无穷大舍入。 他们给出的示例问题是: 格式A 比特数:101111001 值:-9/8 格式B 比特数:101110010 值:-9/8 我完全理解如何将二进制形式转换为十进制形式,但我完全不知道他们是如何将101111001转换为101110010的Binary ieee格式A到格式B的取整,binary,rounding,ieee,Binary,Rounding,Ieee,所以我有两个基于IEEE浮点格式的9位浮点表示 格式A:1个符号位,k=5个指数位,n=3个分数位,偏差为15 格式B:1个符号位,k=4个指数位,n=4个分数位,偏差为7 我假设将格式A转换为格式B,并使用向+无穷大舍入。 他们给出的示例问题是: 格式A 比特数:101111001 值:-9/8 格式B 比特数:101110010 值:-9/8 我完全理解如何将二进制形式转换为十进制形式,但我完全不知道他们是如何将101111001转换为101110010的 任何帮助都将是惊人的。谢谢 切换时
任何帮助都将是惊人的。谢谢 切换时,指数位是主要焦点,因为您需要使用不同格式的偏差进行转换。因此,请看给出的示例: 格式A的偏差为15,指数二进制值为15(01111),因此,您可以采用二进制值-偏差,就像您试图获得IEEE值一样;因此,给你零。计算IEEE值时,您的方程如下所示: 2^0*1.001。1.001是小数位数值的1倍 现在我们转换为格式B 格式B有4个指数位。所以我们取方程的指数,即0,然后用B偏倚求出你的位串需要的值 位字符串值-偏差=等式中的指数。这就像在查找位字符串的IEEE值时查找指数一样 位字符串值=0+偏差=0+7,因为B偏差为7 因此,我们需要的位字符串值是7:0111 结合到目前为止我们得到的结果:0(符号位),0111(指数位),001(分数位)=0 0111 001 现在我们必须得到格式B的长度为4的分数位字符串。我们有001,需要在字符串的最后一位添加一些位,所以我们有001形式的东西,其中u代表添加的新位。由于要使精度尽可能接近原始格式,因此将其设置为0。永远不要将其设为1,因为这会将分数位字符串向上更改2倍,从而失去精度 现在,我们将其组合在一起得到:0 0111 0010,这是示例的最终答案 因此,在不同格式之间转换时,您需要记住两个简单的准则:
如果您同时理解二进制到十进制和十进制到二进制,那么A到十进制到B应该不是问题