2017-02-27 35 views
0

我想計算LRC(在JAVA)以下消息:發現不對LRC

String TLV1="003D6000010000544553543531333030303234FF8B6028DF0225DF82040C544553543531333030303234DF820803000160DF820903170222DF820A03172011D5"; 

我LRC應該是「D5」 = 213,但我的代碼計算232 :(我不知道我在哪裏」在做錯誤的。

public short calculateLRC()       
{ 

    short LRC = 0; 

    for (int i =2 ; i < TLV1.length()-2; i=i+2) 
    { 
    String a1=TLV1.substring(i,i+2);  
    String a2="0x"+a1; 
    Integer a3 = Integer.decode(a2); 
    int a4[] = new int [TLV1.length()]; 
    a4[i/2]=a3; 
    LRC ^= a4[i/2];        
    }           
    return LRC; 

} 
+0

你是在說[縱向冗餘檢查](https://en.wikipedia.org/wiki/Longitudinal_redundancy_check)?你遇到什麼問題更具體?你可以提供的背景越多,人們就越容易回答。 –

+0

Duplicate:http://stackoverflow.com/questions/6221886/calculating-lrc-in-java – Radi

+1

可能重複[在Java中計算LRC](http://stackoverflow.com/questions/6221886/calculating-lrc-in -java) – Radi

回答

0

更改代碼

LRC ^= TLV[i]; //Says array required but string found 

LRC ^= (byte)TLV.charAt(i);