[英]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_ulong
和to_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.