gpt4 book ai didi

c - 获取最高有效半字节,无论 int 位长度和字节顺序如何

转载 作者:行者123 更新时间:2023-12-02 04:31:46 25 4
gpt4 key购买 nike

我的头开始疼了...我已经这样看太久了。

我试图屏蔽 int 的最重要的半字节,无论 int 位长度和机器的字节序如何。比方说x = 8425 =0010 0000 1110 1001 =0x20E9 。我知道要获得最低有效半字节,9 ,我只需要做类似 x & 0xF 的事情返回9 。但是最重​​要的半字节怎么样,2

如果我的逻辑从这里开始崩溃,我很抱歉,我的大脑完全崩溃了,但我开始了:

我的书告诉我,数据类型 int 的位长度 w 可以用 w = sizeof(int)<<3 来计算。如果我知道机器是大端字节序,我可以做 0xF << w-41111对于最重要的半字节和 0000其余的,即 1111 0000 0000 0000 。如果我知道机器是小端字节序,我可以做 0xF >> w-80000 0000 0000 1111 。幸运的是,即使我们被告知假设右移是通过算术完成的,这仍然有效,因为 0xF总是给我开头的 0000 。但这不是一个正确的解决方案。我们不允许测试字节顺序,然后从那里继续,所以我该怎么办?

最佳答案

位移运算符在高于字节顺序的抽象级别上运行。 “左”移始终向最高有效位移动,“右”移始终向最低有效位移动。

关于c - 获取最高有效半字节,无论 int 位长度和字节顺序如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com