【发布时间】:2015-01-29 10:45:07
【问题描述】:
对不起,我的英语。我有许多 int 值存储在其中,从 0 到 255。为了找出 7 位数字中的内容,我将这些数字转换为二进制系统,然后在行中并检查行:
if (informationOctet_.substr(6, 1) == "0")
{
...
}
出现了两个问题,
如果我使用 int(我们有 4 个字节),并且我的数字在 [0, 255] 范围内是无符号整数,我如何确定需要考虑哪个字节?高字节?
我找到了想要的字节,你怎么知道,比如第6位的内容?
附: 我不使用拼写,因为使用 unsigned int。
谢谢大家,我测试int number:
int k = 3;
for (int i = 0; i < 8; i++)
{
if (k & (1 << i))
{
std::cout << 1;
}
else
{
std::cout << 0;
}
}
打印:11000000
【问题讨论】:
-
2. if (n & (1
-
您不需要转换为二进制,有位运算符可以让您直接处理整数。另请注意,也许您不应该依赖 int == 4 字节这一事实,标准不保证这一点。
标签: c++ c int byte bit-manipulation