【发布时间】:2016-09-08 14:17:46
【问题描述】:
所以我只是在上课的前几天潜入 C 语言。我的教授向我们提出了一个问题/更多的挑战,所以我想我会在这里提出。
float x,y,z;
x = 0.0;
y = 1.0;
z = -2.5;
他希望我们在不使用%x 等的情况下以二进制和十六进制显示这些数字。他还暗示使用联合:
union U {
float y;
unsigned z;
};
提前感谢您的宝贵时间。我只是在寻找有关如何进行这种转换的帮助/解释。
【问题讨论】:
-
至于
unsigned int的大小与float相同... -
好吧,语言律师会说教授正在犯罪......
-
嗯,所以你要求我们做你的挑战?那我们可以参加考试了吗?
-
好的,所以
union只是将浮点编组为整数的提示。现在拿一张纸,看看如何将整数转换为 base-2 或 base-16,然后尝试编写此代码。 -
This 会将任何对象转换为二进制。它不使用
"%x"。