2009-12-09 24 views
16

是否有任何Cocoa類可以幫助我將NSString中的十六進制值轉換爲0x12FAlongNSNumber?它看起來不像NSNumberFormatter支持十六進制數字的任何類。將十六進制字符串轉換爲長

謝謝, 華穎

+3

這不是http://stackoverflow.com/questions/1870475的副本,這是關於轉換十六進制數字給*一個字符串*。 – 2009-12-09 19:10:08

回答

41

這裏是你將如何使用NSScanner做一個簡單的例子:

NSString* pString = @"0xDEADBABE"; 
NSScanner* pScanner = [NSScanner scannerWithString: pString]; 

unsigned int iValue; 
[pScanner scanHexInt: &iValue]; 
11

NSScanner's scanHex ...:方法。這會讓你看到你可以包裝在NSNumber中的原語。

7

這裏是另一種方式的轉換,很長整型到十六進制字符串。
第一個十六進制爲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); 
相關問題