所以我在上课的前几天就潜入C语言。我的教授为我们提出了一个问题/更多挑战,所以我想我会在这里提出。
float x,y,z;
x = 0.0;
y = 1.0;
z = -2.5;
他希望我们在不使用%x
等的情况下以二进制和十六进制显示这些数字。他还暗示要使用联合:
union U {
float y;
unsigned z;
};
感谢您提前的时间。我只是在寻求帮助/解释如何发展这种转换。
答案 0 :(得分:1)
正确的方法是,不违反严格别名规则,将使用char
数组对float进行别名,这是C标准所允许的。
union U {
float y;
char c[sizeof (float)];
};
这样您就可以使用float y;
数组访问单个c
字节,并使用非常简单的算法将它们转换为二进制/十六进制(我将离开)这取决于你,因为这是你的任务)。