IEEE 754 ビット浮動小数点数として 8 桁の 16 進数を取り込んでおり、その数値 (signbit、expbits、fractbits、正規化、非正規化、無限大、ゼロ、NAN) 浮動小数点数に関する情報を出力したいのですが、単一である必要があります。
私はビットシフトについて読みましたが、これが私がそれを行う方法だと思いますか?. ただし、100% 確実ではありません。符号ビットが数字の一番左の位置にあることを理解しています。正または負を示します。それぞれを見つけるにはどれだけシフトしますか?それぞれを見つけるためにシフトし続けるだけですか?誰かが私がそれぞれを見つける方法を説明できますか?
符号ビットを見つけるために 1 シフトしますか? 指数を取得するために 8 シフトしますか? frac を得るために 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
それは何をしているのか..