假定RAM中的字节0包含值0x12。后续字节包含0x34、0x45和0x78。在具有32位单词的Big-Endian系统上,该单词的十进制值是多少?
我知道对于Big Endian系统,单词的顺序为0x78、0x45、0x34、0x12。我将每个值都转换为十进制,得到了120、69、52、18。我想知道,为了获得单词的十进制值,我是否要将所有这些值加在一起(120 + 69 + 52 + 18),或者我如何将它们解释为十进制数字(120695218)?
答案 0 :(得分:1)
您知道如何将单个整数从十六进制转换为十进制吗?在大端系统中,您的整数值为0x12344578
= ... + 5*16^2 + 7*16^1 + 8*16^0
。
如果您正在编写计算机程序以将单词打印为十进制,则该单词已经是 binary 整数(十六进制是人类可读的二进制序列化格式,实际上并未使用内部),然后重复除以10,每次将余数用作低位数字。 (因此,您将首先以相反的打印顺序生成数字LSD。)
对于程序来说,字节序不是问题。您只需加载一个单词即可在寄存器中获取单词的整数值。