c++ - 将 bitset<64> 转换为 quint8
问题描述
我有一个bitset<64>
(16 位串行和 48 位时间戳),我想写入quint8 *data
.
当bitset<64>
看起来像:
1111001010100101...
我想data
看起来像:
data[0] = 11110010
data[1] = 10100101
...
如果有人可以帮助我实现这一点,将不胜感激。
解决方案
如果我对您的理解正确,那么这将完成您的要求:
#include <iostream>
#include <bitset>
int main()
{
std::bitset<64> bits64{0b0111101111011001110011010101110001111011110110011100110101011100};
/*
01111011
11011001
11001101
01011100
01111011
11011001
11001101
01011100
*/
for (auto i = 7; i >= 0 ; i--)
std::cout << std::bitset<8>{bits64.to_ullong() >> (i * 8)} << std::endl;
return 0;
}
输出:
01111011
11011001
11001101
01011100
01111011
11011001
11001101
01011100
您可以更改for
循环语句以使其以您选择的任何字节顺序发出。
推荐阅读
- reflection - 如何提取 UiObject 元素的索引
- php - 不允许 Laravel 错误路由“/signin/”或方法“post”
- php - 如何声明一个我事先不知道项目索引号的数组
- python - python unittest相对导入
- node.js - 我在将 Gatsby 站点部署到 Netlify 时遇到问题?
- aws-cloudwatch-log-insights - 如何在 Amazon Cloudwatch Insights 中过滤子查询
- r - 暴露为 Web 服务的持久 R 模型返回错误答案
- java - parameter.method 或 argument.method 怎么可能?我认为它总是class.method。有人可以解释吗?
- python - 无法从链表中仅删除最后一个元素!(具有特定值的所有其他元素都被删除)
- r - 如何迭代分组变量以计算多个变量之一的平均值?