gpt4 book ai didi

c++ - int 位运算

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

请原谅我的英语。我在其中存储了从 0 到 255 的多个 int 值。为了找出 7 位数中的内容,我将这些数字转换为二进制系统,然后在行中检查行:

if (informationOctet_.substr(6, 1) == "0")
{
...
}

出现了两个问题,

  1. If I use int (which we have 4 bytes), and my number is unsigned int the range [0, 255] How do I determine which byte I need to consider? High byte?

  2. I have found the desired byte, how do you know the contents of, for example, the 6th bit?

附言我不使用法术,因为使用 unsigned int。

谢谢大家,我测试了 int 数:

int k = 3;
for (int i = 0; i < 8; i++)
{
if (k & (1 << i))
{
std::cout << 1;
}
else
{
std::cout << 0;
}
}

打印:11000000

最佳答案

  1. 这是实现定义的,取决于 endianess的中央处理器。如果你很聪明,你可以这样检查:the_int & 0xFF ,无论字节顺序如何,它总是会为您提供最低有效字节。

  2. byte & (1 << 6) .或许。请注意,位计数是零索引的(就像数组一样),因此您必须小心这些术语。 “第 6 位”和“第 6 位”可能有不同的含义。始终将位枚举为 7 6 5 4 3 2 1 0 , 则与C代码一致。

关于c++ - int 位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28212705/

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