Floating point 以浮点表示的数字N是多少,由32位二进制字符串表示,其十六进制表示为8A000000?

Floating point 以浮点表示的数字N是多少,由32位二进制字符串表示,其十六进制表示为8A000000?,floating-point,Floating Point,以浮点表示的数字N是多少,由32位二进制字符串表示,其十六进制表示为8A000000 请帮帮我。我怎样才能找到它?号码是-6.162976e-33 我在c中使用了以下代码来找到它: int a[1] = {0x8A000000}; float* p = a; printf("%e\n", p[0]); 这里的诀窍是,您只能从六个值创建整数,然后我将指针转换为浮点指针并打印解引用的值 一个更简单的方法是用谷歌搜索十六进制转换器中的浮点值,然后将数字输入第一个结果 通过找出所使用的二进制表示法,

以浮点表示的数字N是多少,由32位二进制字符串表示,其十六进制表示为8A000000

请帮帮我。我怎样才能找到它?

号码是-6.162976e-33

我在c中使用了以下代码来找到它:

int a[1] = {0x8A000000};
float* p = a;

printf("%e\n", p[0]);
这里的诀窍是,您只能从六个值创建整数,然后我将指针转换为浮点指针并打印解引用的值


一个更简单的方法是用谷歌搜索十六进制转换器中的浮点值,然后将数字输入第一个结果

通过找出所使用的二进制表示法,找到它的规范,并从与删除的问题相同的问题开始工作:浮点系统的参数是什么?此代码的行为不由C标准定义,因为它违反了抗锯齿规则C 2011[N1570]6.5 7。重新解释对象表示的正确方法是使用union作为printf%g\n,union{uint32_t u;float f;}{0x8a000000}.f;或者通过将字节从一个对象复制到另一个对象,如uint32_t u=0x8A000000;浮动f;memcpy&f,&u,sizeof;。该行为也是未定义的,因为如果int为32位,它会导致整数溢出。假设浮点为32位,则应使用uint32\t之类的类型。