学习Tips
NSString *temp = [NSString stringWithFormat:@"%@%@",@"0x",[[[temp0 stringByAppendingString:temp1] stringByAppendingString:temp2] stringByAppendingString:temp3]]
const char *str = NULL
if ([temp canBeConvertedToEncoding:NSUTF8StringEncoding]) {
str = [temp cStringUsingEncoding:NSUTF8StringEncoding]
}
uint32_t num
float f
sscanf(str, "%x", &num)
f = *((float*)&num)
printf("the hexadecimal 0x%08x becomes %.3f as a float\n", num, f)
+ (NSString *)getCrc16_MODBUSWithString:(NSString *)str{
NSArray *array = [[NSArray alloc]initWithArray:[self seperateStr:str byLength:2]]
unsigned short tmp = 0xffff
unsigned short ret1 = 0
Byte buff[10240] = {}
for (int i = 0
buff[i] = [[self decimalStringFromHexString:array[i]] intValue]
}
for(int n = 0
tmp = buff[n] ^ tmp
for(int i = 0
if(tmp & 0x01){
tmp = tmp >> 1
tmp = tmp ^ 0xa001
}
else{
tmp = tmp >> 1
}
}
}
/*CRC校验后的值*/
printf("校验后的值%X\n",tmp)
/*将CRC校验的高低位对换位置*/
ret1 = tmp >> 8
ret1 = ret1 | (tmp << 8)
printf("高低位对换后的值ret: %X\n",ret1)
NSString *returnStr = [NSString stringWithFormat:@"%X",ret1]
return returnStr
}
工具推荐
地址 www.gaituya.com/
地址 wallhaven.cc/
地址 www.fontspace.com/
地址 www.iodraw.com/
地址 www.cxy521.com