gpt4 book ai didi

C++ 位操作

转载 作者:行者123 更新时间:2023-11-30 01:29:02 24 4
gpt4 key购买 nike

我正在尝试从 UTF-8 格式中提取字符值。假设我有两个字符,我从第一个字符中提取 5 位 => 10111,从另一个字符中提取 6 位 => 010000

所以

ch1 = 10111;
ch2 = 010000;

我如何将它们组合成 10111010000 并将其十六进制输出为 0x5d0?我需要转换还是有更简单的方法来执行此操作,因为检查文档 write 貌似可以顺序读取字符,有类似的功能吗?此外,由于 10111010000 的长度为 11 位,因此我似乎需要一个字符缓冲区。有谁知道该怎么做?

最佳答案

您需要使用移位,加上 ||= 运算符。

unsigned int ch3 = (ch1 << 6) | ch2;
// ch3 = 0000010111010000

我在这里假设 unsigned int 是 16 位。您的里程可能会有所不同。

关于C++ 位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544912/

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