【问题标题】:Hex Conversion to Decimal十六进制转换为十进制
【发布时间】:2018-09-04 21:33:12
【问题描述】:

我不明白为什么 big endian [00 02 B1 10] 变成十进制 [176,400]。

我转换它的方法是将每对十六进制数字转换为十进制并将其乘以 16 的“正确”幂:

00 * 16^3 = 0

02 * 16^2 = 512

B1 * 16^1 = 192

10 * 16^0 = 16

0 + 512 + 192 + 16 = 720

但这不可能。将大端十六进制值 [00 02 B1 10] 转换为十进制 [176,400] 的正确方法是什么?

【问题讨论】:

    标签: hex decimal


    【解决方案1】:

    您需要单独转换每个十六进制数字,而不是成对转换:

     2 * 16^4 = 131072
    11 * 16^3 = 45056   // B = decimal 11
     1 * 16^2 = 256
     1 * 16^1 = 16
     0 * 16^0 = 0
    
    131072 + 45056 + 256 + 16 = 176400
    

    【讨论】: