数字转反转十六进制转换器

转换结果

请输入数字并点击转换按钮

// JavaScript 实现代码
function dec2HexReverse(strDec) {
    // 检查输入是否为空
    if (!strDec) return "";
    
    // 将字符串转换为32位无符号整数
    const value = parseInt(strDec, 10);
    
    // 创建ArrayBuffer和DataView来处理字节
    const buffer = new ArrayBuffer(4);
    const view = new DataView(buffer);
    
    // 将整数值以小端字节序写入缓冲区
    view.setUint32(0, value, true);
    
    // 初始化结果字符串
    let hexString = "";
    
    // 遍历每个字节并将其转换为十六进制
    for (let i = 0; i < 4; i++) {
        const byte = view.getUint8(i);
        // 将字节转换为两位十六进制并大写
        hexString += byte.toString(16).padStart(2, '0').toUpperCase();
    }
    
    return hexString;
}

转换过程详解

第一步:输入验证

检查输入是否为空,如果为空则直接返回空字符串。

第二步:转换为整数

使用parseInt(strDec, 10)将输入的十进制字符串转换为32位无符号整数。

例如:输入"4660" → 转换为整数4660

第三步:准备字节缓冲区

创建一个4字节的ArrayBuffer(因为32位整数=4字节),并使用DataView来操作这些字节。

第四步:以小端格式写入整数

使用view.setUint32(0, value, true)将整数以小端字节序写入缓冲区。

小端字节序意味着最低有效字节存储在最低的内存地址。

第五步:转换为十六进制字符串

遍历每个字节,使用byte.toString(16)将其转换为十六进制,并确保总是两位数字。

示例:4660 的转换过程

字节 1: 0x34
字节 2: 0x12
字节 3: 0x00
字节 4: 0x00
34
12
00
00
↓ 连接

34120000