You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Little Endian十六进制到十进制的转换?

小端(Little Endian)十六进制转十进制的实现方法

要实现小端十六进制到十进制的转换,核心逻辑是先将小端十六进制的字节顺序反转,还原为大端十六进制,再转换为十进制数,和你之前实现的十进制转小端十六进制的逻辑完全逆向。

实现函数(VB.NET)

Public Shared Function hexLittleEndianToDecimal(ByVal _sLittleEndianHex As String, ByVal _iBytes As Integer) As Long
    ' 验证输入的十六进制字符串长度是否与指定字节数匹配(1字节对应2个十六进制字符)
    If _sLittleEndianHex.Length <> 2 * _iBytes Then
        Throw New ArgumentException("输入的十六进制字符串长度与指定字节数不匹配")
    End If
    
    Dim sBigEndianHex As String = ""
    ' 从后往前按每2个字符(1字节)截取,拼接成大端十六进制字符串
    For i = _iBytes - 1 To 0 Step -1
        sBigEndianHex += _sLittleEndianHex.Substring(i * 2, 2)
    Next
    
    ' 将大端十六进制字符串转换为十进制长整型
    Return Convert.ToInt64(sBigEndianHex, 16)
End Function

调用示例

对应你提供的测试用例(小端十六进制:86F58622,4字节),可以这样调用:

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
    ' 输入小端十六进制字符串,指定字节数为4,得到十进制结果
    TextBox3.Text = hexLittleEndianToDecimal("86F58622", 4).ToString()
    ' 输出结果为:579270022
End Sub

关键逻辑说明

  • 小端字节序的特点是低位字节在前,高位字节在后,因此转换时需要先将十六进制字符串按每2个字符(1字节)为单位反转顺序,得到符合人类阅读习惯的大端十六进制。
  • 转换为十进制时,直接使用Convert.ToInt64方法将大端十六进制字符串转为长整型,该方法会自动处理十六进制到十进制的转换。

内容的提问来源于stack exchange,提问作者Charlie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:45:40