2009-06-01 3 views
5

Учитывая пример массива следующим образом:Как преобразовать шестнадцатеричное число в целые числа и строки в Objective C?

idx = [ 0xe, 0x3, 0x6, 0x8, 0x2 ] 

Я хочу, чтобы получить целое и строковое представление каждого из указанных элементов в Objective C. Я издевался вверх пример рубин, который работает отлично:

0xe gives 14 when i run 0xe.to_i and "e" when i run to_i(base=16) 
0x3 gives 3 when i run 0x3.to_i and gives 3 when i run to_i(base=16) 

Как достичь этого в Objective C?

+0

Является ли эти не -локализованные числа? – sbooth

+0

Да. Они не локализованы. –

ответ

10

Чтобы получить десятичные и шестнадцатеричные эквиваленты, вы могли бы сделать:

int number = 0xe; // or 0x3, 0x6, 0x8, 0x2 

NSString * decimalString = [NSString stringWithFormat:@"%d", number]; 
NSString * hexString = [NSString stringWithFormat:@"%x", number]; 
+0

Спасибо, ладно, это немного полезно. Но могу ли я хранить 0xe в NSNumber? Я не могу назначить его int, поскольку я хочу сохранить этот материал в NSArray, так как вы не можете использовать в нем стандартные типы C (измененный или нет). –

+1

NSNumber может обернуть любой из примитивных числовых типов. Разумеется, после создания строковых представлений чисел вы можете сохранить строки в массиве. –

0

После того, как у вас есть NSString вы можете просто использовать методы этого класса, как intValue или longValue или floatValue