Я беру файл в качестве входного аргумента, и мне нужно определить, являются ли данные двоичными или нет (ну, я думаю, ASCII или двоичными), аналогично команде «файл» в * nix, но в моем приложении.
Я не уверен, как это сделать, так как когда я читаю данные, я делаю это так:
fread(&rndByte, sizeof(unsigned int), 1, fp);
// reading one unsigned int at a time from file fp
Я думал о проверке, если значение равно ‹ 128 много раз, но не знаю, как это проверить при чтении всего целого числа за раз. Я хотя и зацикливаюсь по 1 байту за раз и проверяю таким образом, но системе, в которой я работаю, не нравятся сдвиги, которые я делаю.
Есть идеи, предложения?
unsigned int
за раз? Было бы намного проще читатьchar
за раз. - person dan04   schedule 05.11.2010unsigned int
32-битный,if (x & 0x80808080)
будет проверять старший бит 4 байтов одновременно. - person R.. GitHub STOP HELPING ICE   schedule 05.11.2010