【发布时间】:2019-05-06 03:04:19
【问题描述】:
我在采用整数类型后尝试打印出 IEEE754,但它没有为我显示正确的答案。 我想在 main 方法中将整数传递给函数“void ieee(int x)”,然后它将打印出 IEEE754 格式。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int binary(int n, int i)
{
int k;
for (i--; i >= 0; i--)
{
k = n >> i;
if (k & 1)
printf("1");
else
printf("0");
}
}
typedef union
{
int f;
struct
{
unsigned int mantissa : 23;
unsigned int exponent : 8;
unsigned int sign : 1;
} field;
} myfloat;
void ieee(int x)
{
int i;
myfloat var = (myfloat)x;
printf("%d ",var.field.sign);
binary(var.field.exponent, 8);
printf(" ");
binary(var.field.mantissa, 23);
printf("\n");
}
int main()
{
int x = 3;
ieee(x);
return 0;
}
【问题讨论】:
-
那么预期的输出是什么?
-
@ybungalobill 如果我们输入 3,它将是 010000000100000000000000000000000