使用 Bitset 将 16 位显示为四组,每组 4 位,C++
Using Bitset to display 16 bits into four groups of 4 bits in C++
我正在做一个编程任务,我正在使用 bitset<> 函数在C++中打印一个整数的二进制表示 16 位。我很难尝试将 16 位打印成四组,每组四位,中间有一个空格。如何使用位集函数执行此操作?
cout << "0b" << bitset<16>(integer) << "t";
如果整数为 1,则会打印出来
0b0000000000000001
我正在尝试打印的是
0b0000 0000 0000 0001
您可以实现过滤流,但为什么不保持简单呢?
auto the_number = std::bitset<16>(1);
std::cout << "0b";
int count = 0;
for(int i=the_number.size()-1; i>=0; i--)
{
std::cout << std::bitset<16>(255)[i];
if(++count == 4) {std::cout << " "; count = 0;}
}
位集的<<
运算符不提供分隔半字节的格式说明符。您必须自己遍历这些位并"手动"引入分隔符:
int main() {
int integer = 24234;
bitset<16> bits(integer);
cout << "0b";
for (std::size_t i = 0; i < bits.size(); ++i) {
if (i && i%4 == 0) { // write a space before starting a new nibble (except before the very first nibble)
cout << ' ';
}
std::cout << bits[bits.size() - i - 1];
}
return 0;
}
相关文章:
- COM 接口 c# 封送数组数组
- 有人可以解释一下吗?这是关于数组和数组内部 if 语句的一些处理
- 使用数组数组调用 C++ 函数
- 筛选嵌套的动态元组(元组的动态元组)
- 为什么我们必须在 C++ 中释放数组数组,而不仅仅是整个"matrix"
- 形成元组数组C++
- 如何在 C++ 中定义数组数组
- 如何正确分配动态创建int并将其分配给具有值的动态数组数组
- 将指针返回使用New创建的数组数组
- 一种从元组/数组获取参数包的方法
- 如何在 HDF5 中逐个存储组数组
- 如何在 c++ 中将字符串拆分为字符串 2d 数组数组
- MT4交易平台API管理器 - 获取每组证券
- 如何从"开始组..结束组"链接器选项构建文件列表
- C++17 使用选定的构造函数在堆栈中构造数组(每个数组条目的构造函数参数值相同)
- 将字符串从头到尾分成两组,每组 C++
- 使用 Bitset 将 16 位显示为四组,每组 4 位,C++
- 二维数组每秒钟两行c++
- 试图从数组每行显示10个数字
- 粗糙的四维数组