gpt4 book ai didi

c++ - 如何设置整数的前三个字节?在 C++ 中

转载 作者:太空狗 更新时间:2023-10-29 23:50:01 28 4
gpt4 key购买 nike

我想在 C++ 中将整数的前三个字节设置为 0。我试过这段代码,但我的整数变量 a 没有改变,输出总是 -63。我做错了什么?

#include <iostream>
#include <string>

int main()
{
int a = 4294967233;
std::cout << a << std::endl;
for(int i = 0; i< 24; i++)
{
a |= (0 << (i+8));
std::cout << a << std::endl;
}

}

最佳答案

只需使用带掩码的按位与 (&),没有理由循环:

a &= 0xFF000000; // Drops all but the third lowest byte
a &= 0x000000FF; // Drops all but the lowest byte

(感谢@JSF 的更正)

如@black 所述,您可以使用 Digit separators从 C++14 开始,为了使您的代码更具可读性:

a &= 0xFF'00'00'00; // Drops all but the third lowest byte
a &= 0x00'00'00'FF; // Drops all but the lowest byte

关于c++ - 如何设置整数的前三个字节?在 C++ 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34357968/

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