我正在使用std::bitset
给我一个数字的二进制表示。我现在想要使用它并仅使用二进制表示输出到std::cout
- 我不想要std::bitset
的ASCII表示 - 我只想输出我的bitset,因为它在记忆中。
bitset<32> bits = a;
cout << bits; //produces the ASCII characters for '1' and '0' depending on a
答案 0 :(得分:0)
如果您的bitset在函数to_ulong
或to_ullong
的限制范围内,您可以使用这些函数并直接将它们输出到二进制文件。
如果您的bitset超过unsigned long
或unsigned long long
可以存储的数量,该函数将抛出溢出异常。这意味着您需要提取位集的子集,并为每个子集存储unsigned long
或unsigned long long
到文件。
不幸的是std::bitset
没有提供直接的子集功能,所以你必须自己编写。