我正在尝试编写一个输出每个可能的 16 位数字的文件。我得到的是 16 位十六进制而不是 16 位二进制的输出。我怎样才能得到它的二进制文件。谢谢
FILE * file = fopen("16BitFile.txt", "w");
for(int i=0; i<65536; i++)
{
fprintf(file, "%016x\n", i);
}
std::ifstream ifs ("16BitFile.txt", std::ifstream::in);
int number;
ifs>>number;
std::bitset<16> x(number);
std::cout<<x;
您可以查看这里以获取有关如何使用 bitset 打印整数的更多信息
#include <stdio.h>
#include <stdexcept>
#include <stdint.h>
int main()
{
FILE * file = fopen("16BitFile.txt", "wb");
int16_t i = 0;
for (;;) {
if (fwrite(&i, sizeof(i), 1, file) != 1)
throw std::runtime_error("fwrite failed");
if (++i == 0)
break;
}
if (fclose(file) != 0)
throw std::runtime_error("fclose failed");
}