喘JAVA糞?CRC16丕刮鷹 - 園殻秘壇利
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-18
temp, pos;
// Division system. 茅隈匂。
for (int i = 0; i < sourceLength; i++) {
// Count value of the input adding the first register.
// 喘及i了圻鷹才及匯倖篠贋匂峙庁屈紗。
temp = (crcCodes[sourceLength] + sourceCodes[i]) % 2;
// Move registers forwards from (1, length) to (0, length - 1).
// 及屈倖篠贋匂式參朔議侭嗤篠贋匂峙念卞1了。
System.arraycopy(
crcCodes, sourceLength + 1, crcCodes, sourceLength, multinomial[0] - 1);
// Set the last register with counted value.
// 恷朔匯倖篠贋匂峙贋慧柴麻挫議補秘峙。
crcCodes[codesLength - 1] = temp;
// Count other registers. 梓伏撹謹?塀議峙麻竃了崔?庁屈紗竃乎篠贋匂議峙。
for (int j = index.length - 2; j > 0; j--) {
pos = codesLength - multinomial[j] - 1;
crcCodes[pos] = (crcCodes[pos] + temp) % 2;
}
}
return crcCodes;
}
public static void main(String[] args) throws IOException {
System.out.print("Input hex data :");
StringBuffer buf = new StringBuffer();
char ch = (char) System.in.read();
while (ch != ''\r'' && ch != ''\n'') {
buf.append(ch);
ch = (char) System.in.read();
}
// Get binary codes.
int[] b = CRC16Checker.getBinary(buf.toString());
// Make CRC codes.
b = CRC16Checker.makeCRCCodes(b, CRC16Checker.index);
// Output code as binary number.
for (int i = 0; i < b.length;) {
for (int j = 0; j < 4; j++, i++) System.out.print(b[i]);
System.out.print('' '');
}
System.out.println();
// Output code as hex number.
System.out.println("The CRC16 code is :" + CRC16Checker.toHex(b));
}
}
3. Test report :
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于喘JAVA糞?CRC16丕刮鷹 - 園殻秘壇利的所有评论