我尝试过许多其他线程的建议,但都没有结果。
我正在做赫夫曼的编码,我遇到的问题是让我的string 'byte' (通常长度为8)作为字符写入输出二进制文件。每当我打开输出文件时,比特都与我所输入的完全不同。此外,当我将字符串“char 'c'”转换为字符后输出'c'时,'c'的二进制文件与我的原始输入不匹配。例如,'c'将是一个10位字符,而我总体上左撇子超级困惑。
那么,我该如何正确地做到这一点呢?还是其他地方的问题呢?
下面是代码:
if (byte.length() >= 8) {
bitset<8> b(byte.substr(0, 8));
c = static_cast<unsigned char>(b.to_ulong());
flit.write(&c, 1);
}byte -字符串flit - ouput文件流发布于 2019-02-28 06:20:59
你是否有理由试图将你的位集表示为无符号长?从您的描述中可以看出,bitset::to_string 链接的功能涵盖了您想要做的事情
https://stackoverflow.com/questions/54918182
复制相似问题