Floating point 什么是-41.25的32位二进制等价物?
所以我不知道怎么做,但我会试试。我哪里出错了 所以我知道double有1位表示符号,8位表示指数,23位表示分数 因为它是负数,所以它以1开头 41在二进制中等于101001 0.125等于1/8=1/2^3=1*2^(-3)=0.001。有没有更简单的计算方法 所以加起来就是-101001.001,也就是-1.01001*2^5 由于ieee754标准中浮点的指数为5,偏移量为127,因此5+127=132(二进制为10000100)表示为32位二进制或双精度表示Floating point 什么是-41.25的32位二进制等价物?,floating-point,bit,Floating Point,Bit,所以我不知道怎么做,但我会试试。我哪里出错了 所以我知道double有1位表示符号,8位表示指数,23位表示分数 因为它是负数,所以它以1开头 41在二进制中等于101001 0.125等于1/8=1/2^3=1*2^(-3)=0.001。有没有更简单的计算方法 所以加起来就是-101001.001,也就是-1.01001*2^5 由于ieee754标准中浮点的指数为5,偏移量为127,因此5+127=132(二进制为10000100)表示为32位二进制或双精度表示 1 10000100 00
1 10000100 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
是这样吗?还是我错过了什么?有更简单的方法吗?您的问题似乎混淆并组合了32位和64位IEEE 754二进制浮点格式。说“因为ieee754标准中浮点的指数是5,偏移量是127”,这是没有意义的。IEEE 754标准明确指出,指数大小和偏差都取决于格式。在IEEE 754标准中,32位二进制浮点的指数为5且偏差为127是正确的,但对于64位二进制浮点则为错误 32位和64位格式通用: -41.125是负数,因此对于这两种格式,我将转换41.125,但将符号位设置为1 小数点41.125为二进制101001.001,或具有二进制指数5的1.01001 32位二进制浮点: 指数为8位宽,偏差为127。十进制的指数字段是132,二进制10000100 对于普通数字,不需要在二进制点之前存储数字。它是非零的,并且只有一个非零二进制数字。分数部分是01001,尾随的零填充到23位 将这些元素组合在一起将产生二进制(四位逗号组块,空格和单独的字段): 1000010,01001000000000000000 十六进制0xc2248000 64位二进制浮点: 指数为11位宽,偏差为1023。十进制的指数字段是1023+5=1028,二进制10000000100. 分数部分为01001,尾随零填充至52位 将这些元素组合在一起将产生二进制(四位逗号组块,空格和单独的字段): 一,100,0000,0100, 0100100000000000000000000000000000000000000 十六进制0xC04490000000000 您的问题 最后,除了标题问题,你还会问“是这样吗?还是我错过了什么?有没有更简单的方法?” 你的答案显然是错的。它有65位,标题问题的正确答案正好有32位,不多也不少 您可能试图通过添加尾随零,从32位表示法计算64位表示法。这不适用于IEEE 754。在浮点系统中,64位和32位格式仅在有效位的宽度上有所不同。出于情感上的原因(这是我在位级别研究的第一个浮点系统),请参见NCR世纪浮点。格式从第65页开始描述,共页。IEEE 754则不同。指数的宽度和偏差在32位和64位格式之间有所不同 第65位可能来自使用空格分隔字段和使用空格分组数字之间的切换。这就是为什么这个答案使用逗号而不是空格来分组 我认为您忽略了32位和64位格式之间的差异 然而,除此之外还有一些问题。仅查看问题中结果最左边的32位,并与此答案中的结果进行比较:
Q: 1 100,0010,0 001,0000,0000,0000,0000,0000
A: 1 100,0010,0 010,0100,1000,0000,0000,0000
符号和指数字段匹配。我们都计算了归一化值的分数部分为.01001。答案将该位模式作为有效位字段的最左边位。这个问题并没有解释该字段是如何计算的
做到这一点最简单的方法是把它留给计算机。有几种在线计算器和转换器可以为您实现这一点。此答案中的结果已对照检查。您确实需要更清楚地了解您在讨论32位和64位的位置。在IEEE 754中,它们具有不同的指数宽度和偏差。例如,您不能仅通过在分数字段中添加一些零来将32位转换为64位。例如,在32位二进制中,1.0是0x3f80 0000。在64位中,1.0是0x3ff0 0000。