gpt4 book ai didi

c - 从 unsigned long 中提取 N 到 N+4 的 4 位

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:14 25 4
gpt4 key购买 nike

考虑以下整数:

uint32_t p = 0xdeadbeef;

我想得到:

  • 0..3 位所以我做了: p & ((1 << 4) - 1);一切顺利。

然而,对于 4..7,我的尝试并没有按预期进行:

(p >> 16) & 0xFFFF0000

为什么它不提取我想要的位?我不动吗p向右16位再取出4位?

非常感谢能给出解释的答案,谢谢!

最佳答案

如果你想从 4..7 获取位

(p>>4) & 0xf

如果你想获取从N(N+4-1)的位

(p>>N) & 0xf

N应该是<32(如果你的系统是32位系统)。否则你会得到未定义的行为

关于c - 从 unsigned long 中提取 N 到 N+4 的 4 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635437/

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