用java编写一个获得CRC校验码的javabean

本来很想找本书看懂了CRC校验码的产生原理后,自己写。可是现在时间太紧了。只好求各位高手帮忙!javaBean要求:1,输入一串字符。2,返回该字符串的CRC16校验码3... 本来很想找本书看懂了CRC校验码的产生原理后,自己写。可是现在时间太紧了。只好求各位高手帮忙!
javaBean要求:
1,输入一串字符。
2,返回该字符串的CRC16校验码
3,CRC16校验码的产生是通过“查表法”获得。
哭求高手呀,时间不等人。回答了一定加分!!!
展开
 我来答
百度网友e9cda73
2007-12-26 · TA获得超过5099个赞
知道小有建树答主
回答量:454
采纳率:50%
帮助的人:330万
展开全部
private static String mkCrc16(String str) {
CRC16 crc16 = new CRC16();
byte[] b = str.getBytes();
for (int i = 0; i < b.length; i++)
crc16.update(b[i]);
return Integer.toHexString(crc16.value);
}

private static String mkCrc(String string) throws Exception {

CRC32 crc32 = new CRC32();
crc32.update(string.getBytes());

return Long.toHexString(crc32.getValue());
}

public class CRCUtil {
public static final int evalCRC16(byte[] data) {
int crc = 0xFFFF;
for (int i = 0; i < data.length; i++) {
crc = (data[i] << 8) ^ crc;
for (int j = 0; j < 8; ++j)
if ((crc & 0x8000) != 0)
crc = (crc << 1) ^ 0x1021;
else
crc <<= 1;
}

return (crc ^ 0xFFFF) & 0xFFFF;
}
}

参考资料: http://www.javaworld.com.tw/jute/post/view?bid=5&id=110886&age=0

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝枫雨蝶梦968
2012-05-22
知道答主
回答量:9
采纳率:0%
帮助的人:6.1万
展开全部
public class CRC16 {
public static String getData(String data){
byte[] b=data.getBytes();
short crc=0;
for(int n=0;n<b.length;n++){
for (char i = 0x80; i != 0; i >>= 1)
{
if ((crc&0x8000) != 0)
{
crc <<= 1;
crc ^= 0x1021;
}
else
{
crc <<= 1;
}
if ((b[n]&i) != 0)
{
crc ^= 0x1021;
}
}
}
return Integer.toHexString(crc & 0xFFFF);
}
public static void main(String[] args) {
System.out.println(CRC16.getData("1234567890"));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
会潜水地牛
2007-12-26
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
zai 2na 22fen
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式