将十六进制字符串转换为长字符串

Posted

技术标签:

【中文标题】将十六进制字符串转换为长字符串【英文标题】:Convert hex string to long 【发布时间】:2010-12-24 21:34:09 【问题描述】:

是否有任何 Cocoa 类可以帮助我将 NSString 中的十六进制值(如 0x12FA)转换为 longNSNumber?看起来像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 中的原语。

【讨论】:

以上是关于将十六进制字符串转换为长字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中将数据从字符串转换为长整数

strtol函数讲解

将十进制字符串转换为十六进制字符串而不将字符串转换为整数

如何将字符串日期转换为长毫秒

Java:将二进制字符串转换为十六进制字符串[重复]

如何将十六进制字符串转换为 Java 字符串?