十六进制取高8位或者低8位及一般crc校验java代码 本文共有916个字,关键词: 我用C语言来回答这个问题。16位就是一个2字节整数。 ``` unsigned short hex=0x1234;//定义一个2字节整数 unsigned char low = hex & 0xff; //取低8位 也就是0x34 unsigned char hight = hex >> 8; //取高8位 也就是0x12 printf("low=0x%x,hight=0x%x\n",low,hight);//打印结果就是low=0x34,hight=0x12 ``` java取低8位,crc校验 ``` // Notably, not a CCITT CRC-16, though it looks close. private static int crcTable[] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, }; // calculates CRC-16 private static short calcCrc(byte[] message, int offset, int length) { int crc = 0xffff; for (int i = offset; i < offset + length; i++) { crc = ((crc << 4) | ((message[i] >> 4) & 0xf)) ^ crcTable[crc >> 12]; crc &= 0xffff; crc = ((crc << 4) | ((message[i] >> 0) & 0xf)) ^ crcTable[crc >> 12]; crc &= 0xffff; } return (short) crc; } ``` × yihong (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 码农心得 2022-09-13 评论 1203 次浏览