閒聊

[python]LRC校驗碼計算方法

網路上找半天都沒找到LRC的python 的範例,難得找到算出來也是錯的

乾脆自己寫一個

計算方式:
字符串   HEX    10 進 制
3    =>   33   =>   51
7    =>   37   =>   55
1    =>   31   =>   49
=============================
        51+55+49 = 155
=============================
   155%256=155    256-155 = 101
101轉換為16進制等於65,LRC校驗碼即為65

# 十六進制 to 十進制
def hex2dec(string_num):
    return int(string_num.upper(), 16)
# 十進位制 to 十六進位制: hex() 
def calcLRC(input):
#https://blog.davidou.org/archives/1780
#http://www.metools.info/code/c126.html
    input.replace(" ","")#去除所有空白
    b=re.findall(r'.{2}',input) #字串每兩個一組
    count=0
    for i in range(0,len(b)):
        count=count+hex2dec(b[i])#把hex轉10進位後相加起來
    deccount=256-(count % 256)#把256- (加總的去mod256 )就是LRC的答案了

    lrc=dec2hex(deccount)
    return lrc

我是預設輸入hex字串的

例如print(calcLRC(“FE 02 83”))

應該會吐出7D

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。