我将一个 8 位十六进制数作为 IEEE 754 位浮点数,我想打印有关该数字的信息(符号位、expbits、fractbits、规范化、非规范化、无穷大、零、NAN)浮点应该是一个。
我阅读了位移位,我认为这就是我应该这样做的方式?但是,我不是 100% 确定。我知道符号位位于数字的最左侧。这表示正面或负面。我要转移多少才能找到每个?我只是不断移动它来找到每一个吗?有人可以解释我如何找到每一个吗?
我会移动 1 以找到符号位吗?我会移动 8 以获得指数吗?我会移动 23 来获得压裂吗?
符号位应为零
expbits 应该是 128
我认为 fracbits 应该是 0x00000000...
如果是这样,我转移后如何测试它?
这就是我到目前为止所拥有的
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
short wordOrder = 0x0100;
int HexNumber;
printf("Hex IEEE - 754\n");
if(wordOrder == 0x0100)
{
printf("\nbyte order: big-endian\n");
}
else
{
printf("byte order: little-endian\n");
}
printf("\n>");
scanf("%x", &HexNumber);
printf("\n%#x",HexNumber);
return 0;
}
我的输入(scanf)关于我想要它的方式..
>40000000
0x40000000
这就是它在做什么..