gpt4 book ai didi

c - IEEE 浮点表示

转载 作者:行者123 更新时间:2023-12-02 08:54:30 25 4
gpt4 key购买 nike

我创建了以下程序来查找 float 的位模式。但我的计算结果有所不同:

#include<stdio.h>

int main(void){
float f = 1.234;
char *ch;
ch = (char *)(&f);
printf("\n%d\n", *ch);
ch++;
printf("\n%d\n", *ch);
ch++;
printf("\n%d\n", *ch);
ch++;
printf("\n%d\n", *ch);

// printf("%d %d %d %d", *ch, *(ch+1), *(ch+2), *(ch+3));
printf("\n%f %e", f, f);
return 0;
}

它给了我输出:

-74

-13

-99

63

1.234000 1.234000e+00

这是什么意思,因为我期望位模式为:

00111111 10111011 11100111 0110110

哪里不对请指正

最佳答案

我不确定你从哪里得到这个位模式。

对于 IEEE-754,1.234 相当于 0x3F9DF3B6 的底层表示(参见例如 http://babbage.cs.qc.edu/IEEE-754/Decimal.html )。所以我们有:

0x3F = 00111111 =  63
0x9D = 10011101 = -99 (as a signed char)
0xF3 = 11110011 = -13
0xB6 = 10110110 = -74

根据您的系统字节顺序,您可能会发现这些字节以其他顺序出现。

关于c - IEEE 浮点表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com