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

来源:互联网 发布:域名主机系统 编辑:程序博客网 时间:2024/06/05 22:54

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);      }



原创粉丝点击