簡體   English   中英

Java - 如何計算BitSet的CRC16

[英]Java - How to calculate CRC16 of BitSet

我有一個 Java BitSet,其中有一些數據。 這個 BitSet 的長度是 545 位。 問題:所有當前已知的實現只能使用字節數組,但是將我的 BitSet 轉換為字節數組會更改數據,因為我需要進行一些填充。 是否有任何已知的實現可以處理我的數據而無需將其調整為整個字節?

使用.toByteArray()將位轉換為字節序列。 您需要知道需要什么 CRC-16 定義(多項式、排序、預處理和后處理),以及處理位的順序。 .toByteArray()會將集合中的第一位放在第一個字節的最低有效位中。

然后就可以使用crcany為你需要的CRC-16生成C碼了。 生成的代碼包括一個crc16..._rem()例程,用於用多個位更新 CRC。 對於具有n位的 BitSet,您將首先計算前n >> 3個字節的 CRC。 然后使用crc16..._rem()使用最后一個字節中的n & 7位更新 CRC。 將 C 代碼轉換為 Java 很簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM