iOS BCD编码




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];
	
}


posted @ 2017-07-31 18:05  zhchoutai  阅读(440)  评论(0编辑  收藏  举报