当前位置: 首页 > news >正文

[C++] bitset 按字节解析为std::string

#include <iostream>
#include <string>
#include <cstring>
#include <bitset>int main() {// 假设 4 个 char 存储了 32 位的 1//char charArray[4] = { 0xFF, 0xFF, 0xFF, 0xFF };char charArray[4] = { 0x41, 0x42, 0x43, 0x44 };  // 对应字符 'A', 'B', 'C', 'D'// 将 char 数组转换为 std::stringstd::string str(charArray, 4);// 打印字符串的每个字符的十六进制值for (unsigned char c : str) {std::cout << std::hex << static_cast<int>(c) << " ";}std::cout << std::endl;std::cout << str << std::endl;// ABCD// 将 charArray 转换为 32 位的 bitsetstd::bitset<32> bitset3;for (int i = 0; i < 4; ++i) {std::bitset<8> charBits(charArray[i]);for (int j = 0; j < 8; ++j) {bitset3[i * 8 + j] = charBits[j];}}// 打印 bitsetstd::cout << "bitset: " << bitset3 << std::endl;// 假设我们有一个 32 位的 bitsetstd::bitset<32> bitset2("01000100010000110100001001000001");  // 示例 bitset// 将 bitset 转换为字符串std::string bitsetString = bitset2.to_string();// 打印字符串std::cout << "bitset as string: " << bitsetString << std::endl;// 假设我们有一个 32 位的 bitsetstd::bitset<32> bitset("01000100010000110100001001000001");  // 示例 bitset// 将 bitset 按 8 位解析为 4 个字节的 std::stringstd::string byteString;for (int i = 0; i < 32; i += 8) {std::bitset<8> byteBits;for (int j = 0; j < 8; ++j) {byteBits[j] = bitset[i + j];}char byte = static_cast<char>(byteBits.to_ulong());byteString.push_back(byte);}// 打印结果std::cout << "byteString: " << byteString << std::endl;// 打印每个字符的十六进制值for (unsigned char c : byteString) {std::cout << std::hex << static_cast<int>(c) << " ";}std::cout << std::endl;return 0;
}

41 42 43 44
ABCD
bitset: 01000100010000110100001001000001
bitset as string: 01000100010000110100001001000001
byteString: ABCD
41 42 43 44


http://www.mrgr.cn/news/39053.html

相关文章:

  • 在Python中,使用Pillow(PIL的更新分支)库来合并两张图片成一张上下结构的图片
  • 存储技术(CXL、open-channel SSD)
  • k8s中,ingress的实现原理,及其架构。
  • 加速 Python for 循环
  • 解锁电商数据宝藏:API 接口采集与接入演示
  • 一文读懂 Git fetch 和 Git pull 的终极区别(带实验结果)
  • 四十、多云/混合云架构设计(概念设计原则)
  • C++(Qt)软件调试---内存调试器Dr.Memory(21)
  • 我想注册一批账号做矩阵,需要每次注册都切换一个ip吗
  • 摩尔平台今日学习点
  • Python运算符
  • Python中深拷贝和浅拷贝
  • centos9 nginx 版本
  • 打造高业绩朋友圈:策略与实践
  • stm32 bootloader跳转程序设计
  • PMP考试没通过可以重考吗?补考费多少?
  • (作业)第三期书生·浦语大模型实战营(十一卷王场)--书生入门岛通关第1关Linux 基础知识
  • 如何在云端地球建模云平台利用无人机航拍照片进行三维建模?
  • 活体检测标签之2.4G有源RFID--SI24R2F+
  • iOS 项目中的多主题颜色设计与实现