为了账号安全,请及时绑定邮箱和手机立即绑定

请高手把一下代码转换成java程序。

请高手把一下代码转换成java程序。

眼眸繁星 2018-07-19 10:17:07
调用程序: sum == CalcCRC8( &temp_string[1],(len-1) ) 子程序: /////////////////////按位校验 循环冗余校验 uint8_t CalcCRC8(uint8_t *ptr,uint8_t len) // ptr 为数据指针 len 为数据长度 { uint8_t i; uint8_t crc=0; while(len--) { /////////////////////////////////////// i=0x80; while(i!=0) { if(((crc&0x80)!= 0) && ((*ptr)&i)!= 0) //CRC最高位为1且校验bit为1 { crc <<= 1; } else if(((crc&0x80)!= 0) && ((*ptr)&i) == 0) //CRC最高位为1且校验bit为0 { crc <<= 1; crc ^= 0x31; } else if(((crc&0x80) == 0) && ((*ptr)&i)!= 0) //CRC最高位为0且校验bit为1 { crc <<= 1; crc ^= 0x31; } else if(((crc&0x80) == 0) && ((*ptr)&i) == 0) //CRC最高位为0且校验bit为0 { crc <<= 1; } i >>= 1; }  ptr++; } return(crc); }
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

 package demo;

public class s2 {
    public static void main(String[] args) {
        System.out.println(new s2().CalcCRC8(2, 2));;
    }

    int CalcCRC8(int ptr, int len) // ptr 为数据指针 len 为数据长度

    {
        int i;
        int crc = 0;
        for (int a = 0; a < len; len--) {

            {
                // /////////////////////////////////////
                i = 0x80;
                while (i != 0) {

                    if (((crc & 0x80) != 0) && ((ptr) & i) != 0) // CRC最高位为1且校验bit为1
                    {
                        crc <<= 1;
                    } else if (((crc & 0x80) != 0) && ((ptr) & i) == 0) // CRC最高位为1且校验bit为0
                    {
                        crc <<= 1;
                        crc ^= 0x31;
                    } else if (((crc & 0x80) == 0) && ((ptr) & i) != 0) // CRC最高位为0且校验bit为1
                    {
                        crc <<= 1;
                        crc ^= 0x31;
                    } else if (((crc & 0x80) == 0) && ((ptr) & i) == 0) // CRC最高位为0且校验bit为0
                    {
                        crc <<= 1;
                    }
                    i >>= 1;
                }
                ptr++;
            }
        }
        return (crc);
    }


}


查看完整回答
反对 回复 2018-08-09
  • 1 回答
  • 0 关注
  • 635 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信