使用JS写纵向冗余校验LRC的方法

LRC校验小知识

纵向冗余校验(Longitudinal Redundancy Check,简称:LRC)是通信中常用的一种校验形式,也称LRC校验或纵向校验。它是一种从纵向通道上的特定比特串产生校验比特的错误检测方法。在行列格式中(如磁带),LRC经常是与VRC一起使用,这样就会为每个字符校验码。在工业领域Modbus协议Ascii模式采用该算法。 

下面是两个手动的计算方法:

第一种计算方式
转成ASC码后,例如
字符串    ASC     16进制
4      =>    34    =>  0011 0100
5     =>    35    =>  0011 0100
6     =>    36    =>  0011 0100
=============================
                                1001 1111  = 9F
=========================
               9F%100=9F   100-9F = 61
456这个字符串的LRC码就为61

第二种计算方式
字符串    ASC        10进制
4      =>    34    =>  52
5     =>    35    =>   53
6     =>    36    =>   54
=============================
              52+53+54 = 159
  ===========================
       159%256=159     256-159 = 97 
 97===16进制之后=====61

下面是代码部分:



     /*
     *kongchujun 2017/6/10
     * */
      function getLrc(str){
           var length = str.length;
           var b = 0;
           for(var i = 0; i<length;i++){
               b += str.charCodeAt(i);
           }
           return (256 - (b%256)).toString(16);
      }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值