gpt4 book ai didi

c++ - 设置十六进制数的位数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:33 25 4
gpt4 key购买 nike

如何在十六进制数中设置一个数字?我目前有这段代码:

int row = 0x00000000;
row |= 0x3 << 8;
row |= 0x2 << 4;
row |= 0x1 << 0;

printf("Row: 0x%08x", row);

只要“行”只是零,它就可以很好地工作。只要我把它改成这样:

int row = 0x33333333;
row |= 0x3 << 8;
row |= 0x2 << 4;
row |= 0x1 << 0;

printf("Row: 0x%08x", row);

我刚得到这个输出:

Row: 0x33333333

最佳答案

您应该先删除(使其为 0)数字。

row &= ~(0xf << 4);

~ 运算符反转数字中所有位的值。所以。 0x000000f0 变为 0xffffff0f

您的代码应如下所示:

row &= ~(0xf << 8);
row |= 0x3 << 8;
row &= ~(0xf << 4);
row |= 0x2 << 4;
row &= ~(0xf << 0);
row |= 0x1 << 0;

关于c++ - 设置十六进制数的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001519/

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