【发布时间】:2015-10-23 19:24:13
【问题描述】:
我必须在 c 中编写函数来合并来自两个无符号 int 参数的字节, 取第二个参数的最高有效字节和第一个参数的其余部分。
例如,如果给定x = 0x89ABCDEF 和y = 0x76543210,那么函数应该返回0x76ABCDEF
现在我知道 char *c = (char*) &y 会给我 y 的 MSB,但是我不知道如何在没有他的 MSB 的情况下将它链接到 x 的其余部分。
说实话,我完全忘记了用 C 做这么简单的事情,因为去年我所有的课程都使用了 Java,而且我在网上找不到它,所以任何帮助都将不胜感激。
【问题讨论】:
-
(y & 0xff000000) | (x & 0x00ffffff) ...但它是如何工作的? - 编辑
-
您是否假设
unsigned正好是 32 位宽?如果代码是 64 位,代码应该怎么做?如果您的意思是 32 位,您可能想要使用uint32_t。