我的c代码有点麻烦。我正在尝试提取符号、指数和尾数。到目前为止,它适用于符号和指数。问题从尾数开始。例如,我们以-5.0为例。符号1位,指数8位,尾数23位。这是-5.0的二进制表示法:
1 10000001 01000000000000000000000
1 = 符号
10000001 = 指数
01000000000000000000000 =尾数。
我想把尾数的部分还回去。
static int fpmanitssa(uint32_t number) {
uint32_t numbTemp = 8388607;
number = number & numbTemp; //bitwise AND, number should be 2097152.
int numbDiv;
int leftover;
char resultString[23];
size_t idx = 0;
do {
numbDiv = number/2;
leftover = number % 2;
resultString[idx++] = leftover;
number = numbDiv;
} while (number != 0);
return resultString;
我得到的结果是负数。我不知道为什么它不起作用。你能帮忙找出问题吗?
关于萩