// 计算冗余码
public static String getCrc(String dataStr, String gxStr){
int data = Integer.valueOf(dataStr, 2);
int gx = Integer.valueOf(gxStr, 2);
int dataStrlen = dataStr.length();
int gxStrlen = gxStr.length();
BigInteger bi = new BigInteger("2");
int flag = bi.pow(dataStrlen+gxStrlen-2).intValue();
data = data<<(gxStrlen-1);
gx = gx<<(dataStrlen-1);
for(int i=0;i<(dataStrlen);i++){
if((data&flag)!=0){
data = data^gx;
gx = gx>>1;
}else{
gx = gx>>1;
}
flag = flag>>1;
}
StringBuilder crc = new StringBuilder(Integer.toBinaryString(data));
while (crc.length()<(gxStrlen-1)){
crc.insert(0, "0");
}
return crc.toString();
}