gpt4 book ai didi

c++ - 使用位掩码重构整数

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

我对位掩码和位操作很陌生。你能帮我理解这一点吗?我有三个整数 a、b 和 c,我用以下操作创建了一个新数字 d:

int a = 1;
int b = 2;
int c = 92;

int d = (a << 14) + (b << 11) + c;

我们如何使用 d 重构 a、b 和 c?

最佳答案

我不知道您的abc 的范围。但是,假设 ab 为 3 位,c 为 11 位,我们可以这样做:

a = ( d >> 14 ) & 7;
b = ( d >> 11 ) & 7;
c = ( d >> 0 ) & 2047;

更新:

and-mask 的值计算为:(2^NumberOfBits)-1

关于c++ - 使用位掩码重构整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18196914/

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