inline static NSData* encodeBCD(NSString *value){
//NSString *value = @"123456";
NSMutableData *vdata = [[NSMutableData alloc] init];
__uint8_t bytes[1] = {6};
[vdata appendBytes:&bytes length:1];
NSRange range;
range.location = 0;
range.length = 1;
for (int i = 0; i < [value length];) {
range.location = i;
NSString *temp = [value substringWithRange:range];
int _intvalue1 = [temp intValue];
_intvalue1 = _intvalue1 << 4;
range.location = i + 1;
temp = [value substringWithRange:range];
int _intvalue2 = [temp intValue];
int intvalue = _intvalue1 | _intvalue2;
bytes[0] = intvalue;
[vdata appendBytes:&bytes length:1];
i += 2;
}
bytes[0] = 255;
[vdata appendBytes:&bytes length:1];
bytes[0] = 255;
[vdata appendBytes:&bytes length:1];
bytes[0] = 255;
[vdata appendBytes:&bytes length:1];
bytes[0] = 255;
[vdata appendBytes:&bytes length:1];
return [vdata autorelease];
}
转载于:https://www.cnblogs.com/zhchoutai/p/7264630.html