将十六进制字符串转换为长字符串
Posted
技术标签:
【中文标题】将十六进制字符串转换为长字符串【英文标题】:Convert hex string to long 【发布时间】:2010-12-24 21:34:09 【问题描述】:是否有任何 Cocoa 类可以帮助我将 NSString 中的十六进制值(如 0x12FA
)转换为 long
或 NSNumber
?看起来像NSNumberFormatter
这样的任何类都不支持十六进制数字。
谢谢, 华英
【问题讨论】:
这不是***.com/questions/1870475的重复,这是关于将十六进制数字转换为字符串。 【参考方案1】:这是另一种方式的转换,将 long long int 转换为十六进制字符串。 首先将十六进制变为 long long。
NSString* pString = @"ffffb382ddfe";
NSScanner* pScanner = [NSScanner scannerWithString: pString];
unsigned long long iValue2;
[pScanner scanHexLongLong: &iValue2];
NSLog(@"iValue2 = %lld", iValue2);
反之,longlong 到十六进制字符串...
NSNumber *number;
NSString *hexString;
number = [NSNumber numberWithLongLong:iValue2];
hexString = [NSString stringWithFormat:@"%qx", [number longLongValue]];
NSLog(@"hexString = %@", hexString);
【讨论】:
【参考方案2】:下面是一个简短的例子,说明如何使用 NSScanner:
NSString* pString = @"0xDEADBABE";
NSScanner* pScanner = [NSScanner scannerWithString: pString];
unsigned int iValue;
[pScanner scanHexInt: &iValue];
【讨论】:
【参考方案3】:见NSScanner'sscanHex...:方法。这将为您提供可以包装在 NSNumber 中的原语。
【讨论】:
以上是关于将十六进制字符串转换为长字符串的主要内容,如果未能解决你的问题,请参考以下文章