如何确定包含4个十六进制值的32位字的十进制值?

问题描述 投票:0回答:1

假设RAM中的字节0包含值0x12。后续字节包含0x34,0x45和0x78。在具有32位字的Big-Endian系统上,该字的十进制值是多少?

我知道对于Big Endian系统,该字的顺序为0x78,0x45,0x34,0x12。我将每个值转换为十进制并得到120,69,52,18。我想知道,为了得到单词的十进制值,我是否将所有这些值加在一起(120 + 69 + 52 + 18),或者将它们解释为十进制数字中的数字(120695218)?

endianness cpu-architecture
1个回答
1
投票

你知道如何将单个整数从十六进制转换为十进制吗?在big-endian系统上,你有一个整数值0x12344578 = ... + 5*16^2 + 7*16^1 + 8*16^0


如果你正在编写一个计算机程序来打印一个单词作为十进制,你已经把这个单词作为二进制整数(十六进制是一个人类可读的二进制序列化格式,实际上并没有在内部使用),你会做重复除法10,每次使用余数作为低位数。 (因此,您以反向打印顺序首先生成数字LSD。)

对于一个程序,字节顺序不是问题。你只需要一个单词加载来获取寄存器中单词的整数值。

© www.soinside.com 2019 - 2024. All rights reserved.