繁体   English   中英

将8位的BitSet写入文件(C ++)

[英]Write BitSet of 8 bits to file (C++)

我有一个8位的BitSet。

如何将这8位转换为字节然后写入文件?

我到处都看过了,只发现换了另一种方式。

非常感谢!

假设您在谈论C ++ STL位集,答案是将位集转换为int(准确地说是非常准确的),然后将结果转换为char。

例:

#include <bitset>
#include <iostream>
using namespace std;
main()
{
   bitset<8> x;
   char byte;

   cout << "Enter a 8-bit bitset in binary: " << flush;
   cin >> x;
   cout << "x =       " << x << endl;
   byte = (char) x.to_ulong();
   cout << "As byte:  " << (int) byte << endl;
}

http://www.cplusplus.com/reference/stl/bitset/

它们也可以直接以二进制格式插入流中并从流中提取。

您无需转换任何内容,只需将它们写入输出流即可。

除此之外,如果您真的想将它们提取到您习惯的东西中,则提供to_ulongto_string方法。

如果集合中的位数多于一个无符号的long所能容纳的位数,并且不想将它们直接写到流中,那么您要么要转换成字符串然后走那条路线,要么使用[]运算符,然后将其转换为要写入的字节。

您可以使用fstream std::ofstream

#include <fstream>
std::ofstream os("myfile.txt", std::ofstream::binary);
os << static_cast<uint_fast8_t>(bitset<8>("01101001").to_ulong());
os.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM