Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Floating point 什么是-41.25的32位二进制等价物?_Floating Point_Bit - Fatal编程技术网

Floating point 什么是-41.25的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

所以我不知道怎么做,但我会试试。我哪里出错了

所以我知道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 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。