iOS BCD编码

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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];
	
}







以上是关于iOS BCD编码的主要内容,如果未能解决你的问题,请参考以下文章

BCD码和二进制码有啥区别

1位BCD加法器

什么是ASCII码和BCD码?它们各自的作用及编码方法是什么?

BCD编码

[计组]压缩BCD码指二进制编码的十进制

Maxim实时时钟芯片设计指南5413-二进制编码十进制(BCD)格式实时时钟中的状态机逻辑