我知道如何将十六进制<->十进制转换255
为0xFF
=255
但是十六进制数 (HEX)我不知道该如何实现这个功能1040
,0x410
请用图形表示来解释,我是一个注重视觉的人,不擅长文字和数学。
这个在线的例子试图解释它,1457 / 16 = 91.0625 91 / 16 = 5.6875 5 / 16 = 0
我几乎明白这一点,但是他们在哪里得到 91 / 16 = 5.6875 中的余数 11?
编辑:明白了余数是 5 * 16 = 80 然后 91 - 80 = 11,哦,他们应该提到这一点,但是我去的任何一个网站都没有提到这一点。
主要问题在二进制文件中,我得到 2 个字节的十六进制读取值10 04
,并且它以某种方式转换为1040
十进制(int8 或 int32),这是如何工作的?
答案1
主要问题在二进制文件中,我得到 2 个字节的十六进制数,读取 10 04,并且它也以某种方式转换为十进制 1040(int8 或 int32),这是如何工作的?
相同的是 0x410,但是在小端字节顺序,即向后。
通常,文件格式的规范会提到其整数字段是以大端还是小端存储的。(或者有时是两者的混合......)如果没有指定,那么如果文件格式来自 PC,LE 可能是更可能的选择,因为这就是 x86 CPU(即典型的 PC)在内存中存储多字节值的方式。