将二进制文件读入我的程序后,我的D6
为HEX
。
问题是我从解释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
提前致谢!
答案 0 :(得分:0)
没关系,我解决了。
函数Push
中的我应该使用int8_t
代替int32_t