JS生成XOR校验、累加校验、厘元转换计算

1.异或(XOR)校验

// 异或(XOR)校验
function generateXORChecksum(data) {
    try {
        let checksum = 0;
        for(let i = 0; i < data.length; i += 2) {
            let item = data.substring(i, i+2);
            // 生成Unicode字符
            let charValue = String.fromCharCode('0x' + item);
            // 获取指定字符的十进制表示.
            let charCode = charValue.charCodeAt(0);
            checksum ^= charCode;
        }
        return checksum;
    } catch(err) {
        return "";
    }
}

2.累加校验

// 累加和校验(Checksum)
function generateAdditiveChecksum(data) {
    try {
        let checksum = 0;
        for(let i = 0; i < data.length; i += 2) {
            let item = data.substring(i, i+2);
            // console.log("item===", item);
            // 生成Unicode字符
            let charValue = String.fromCharCode('0x' + item);
            // console.log("charValue===", charValue);
            // 获取指定字符的十进制表示.
            let charCode = charValue.charCodeAt(0);
            // console.log("charCode===",charCode);
            checksum += charCode;
        }
        return checksum;
    } catch(err) {
        return "";
    }
}

3.16进制厘转10进制元

function centsStringToAmount(centsStr) {
   // 16转10
   let cents = parseInt(centsStr, 16);
   // 将厘转换为元
   let amount = cents / 100;
   // 返回结果
   return amount;
}
console.log("000001F4===",centsStringToAmount("000001F4"))
// 000001F4===5

4.10进制元转16进制厘

function formatAmountToFixedLength(amount) {
     // 将元转换为厘
     let cents = Math.round(amount * 100);
     // 10进制转16进制
     let centsHex = cents.toString(16).toUpperCase();
     // 确保长度为8,不足部分用0填充
     let centsStr = centsHex.toString().padStart(8, '0');
     // 返回结果
     return centsStr;  
}

console.log("5===",formatAmountToFixedLength(5))
// 5===000001F4

如有侵权请联系我删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值