iOS BCD編碼 – iPhone手機開發技術文章 iPhone軟體開發教學課程

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *