首页 > 解决方案 > 将任意大小的大 Base-10 数读入位集中

问题描述

我想从字符串或标准输入中读取一个 base10 数字到一个位集中。是否有任何 std 函数可以做到这一点,还是我必须自己实现它?

例子:

bitset<4> buffer;
cin >> buffer;
cout << buffer;

输入:5

输出:0101

注意:我需要支持任何长度的输入,只要它适合位集

标签: c++binarybitsetstd-bitset

解决方案


您可以简单地使用std::bitset构造函数:

bitset( unsigned long val );

请注意,如果您没有提供足够的位,结果将保留最低有效 N 位。

例如

std::bitset<2> set(5);
std::cout << set << std::endl;

01(而不是 101)


推荐阅读