读取bin文件为int16

时间:2018-06-13 09:26:41

标签: c binary int hex

将二进制文件读入我的程序后,我的D6HEX。 问题是我从解释214获得-42而不是D6。经过对互联网的大量研究后,我了解到我需要使用int16来获取-42。 有人可以告诉我如何在C中做到这一点?

这是一个很长的代码文件,我尽量尽量在这里发布我的代码:

uint32_t prog_size;
byte_t *text_buffer;
int program_counter = 0;
fread(&prog_size,sizeof(uint32_t),1,fp); // you can assume the first 4 bytes 
                                         //of the binary code indicates the 
                                         //size of the program
prog_size = swap_uint32(prog_size); // for little-endianness
text_buffer = malloc(sizeof(byte_t)*prog_size);
fread(text_buffer,sizeof(byte_t),prog_size,fp);

void match(int program_counter)
{
    switch (text_buffer[program_counter])
    {
      case OP_BIPUSH:
        program_counter++;
        push(text_buffer[program_counter]);
        break;
    }
}
printf printf("%u\n", text_buffer[program_counter] );
// assume that text_buffer[program_counter] is D6 in HEX

提前致谢!

1 个答案:

答案 0 :(得分:0)

没关系,我解决了。

函数Push中的

我应该使用int8_t代替int32_t