0

我正在尝试将字节写入二进制文件,我编写了这个小测试程序来检查我是否正确执行。

std::uint8_t F = 10111001;

std::ofstream K("C:/Users/WDR/Desktop/kml.enc", std::ios::binary);

for(int i = 0; i < 256; i++)
{
    K << F;
}

该文件正在正确写入。我得到一个 256 字节的文件。但是,当我在 Hex Editor 中看到它时,每个字节都显示 value 00011001。难道我做错了什么?还是在十六进制编辑器中看到的字节表示不同?请说清楚。谢谢你。

4

1 回答 1

0

10111001不是二进制数。这是一个十进制数。将此数字分配给 anuint8_t将给您10111001 % 256,即2511001二进制。

你想写std::uint8_t F = 0xB9;

于 2015-04-09T10:44:40.190 回答