欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java算算術校驗和

劉柏宏1年前7瀏覽0評論

Java算法之一:算算術校驗和

public static byte[] calculateChecksum(byte[] data) {
long sum = 0;
for (int i = 0; i< data.length; i++) {
sum += (data[i] & 0xff);
}
while ((sum >>16) >0) {
sum = (sum & 0xffff) + (sum >>16);
}
sum = ~sum;
return new byte[] {(byte) (sum >>8), (byte) (sum & 0xff)};
}

算術校驗和是計算一段數據的簡單方法,用于檢測數據是否被篡改。Java提供了一種簡單的算法來計算算術校驗和。

首先,將每個字節的值相加。然后,將結果與0xffff進行與運算,以將位寬限制在16位內。如果結果大于0xffff,則繼續執行循環加操作,直到位寬限制在16位內。最后,取結果的反碼作為校驗和。因為在算術校驗和中,如果數據被篡改,校驗和也會被修改,所以我們需要對校驗和進行取反以檢測數據是否被篡改。

在代碼中,我們傳入一個字節數組作為輸入數據,并返回一個字節數組作為校驗和。我們首先將所有的字節相加,然后繼續執行循環加操作,直到結果位寬被限制在16位內。最后,我們將結果取反然后拆分成兩個字節,最高字節在前,最低字節在后,作為校驗和返回。