gpt4 book ai didi

c++ - 如何在 C++ 的字符数组中用 0xF 填充半字节?

转载 作者:行者123 更新时间:2023-11-27 23:45:53 26 4
gpt4 key购买 nike

如果我有以下字符串:

std::string mcc_mnc = "272005"

然后我执行以下操作:

typedef unsigned char byte;
byte ecgi[3];

//byte 1
ecgi[0] = byte(mcc_mnc[0] - '0');
ecgi[0] = ecgi[0] | byte((mcc_mnc[1] - '0') << 4);

//byte 2
ecgi[1] = byte(mcc_mnc[2] - '0');
ecgi[1] = ecgi[1] | byte((mcc_mnc[5] - '0') << 4);

//byte 3
ecgi[2] = byte(mcc_mnc[3] - '0');
ecgi[2] = ecgi[2] | byte((mcc_mnc[4] - '0') << 4);

字节 1 ecgi[0] 现在应该包含:

01110010 (0x72)

字节 2 ecgi[1] 现在应该包含:

01010010 (0x52)

字节 3 ecgi[2] 现在应该包含:

00000000 (0x00)

我想更改上面的内容,使字节 3 ecgi[2] 看起来像这样:

00001111 (0x0F)

最佳答案

简单地将低半字节设置为全 1 将是:

ecgi[2] |= 0xf;

或者在某些支持二进制文字的(现代)编译器中:

ecgi[2] |= 0b1111;

这执行按位或运算,有效地设置右侧的所有位。

关于c++ - 如何在 C++ 的字符数组中用 0xF 填充半字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622116/

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