2009-06-01 8 views
5

dado el ejemplo de una matriz de esta manera:¿Cómo puedo convertir el número hexadecimal en enteros y cadenas en el Objetivo C?

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

quiero conseguir una representación entera y la cadena de cada uno de los elementos especificados en C. Objetivo he burlado de un ejemplo de rubí, que funciona a la perfección:

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) 

¿Cómo puedo lograr esto en Objective C?

+0

Son estos no ¿números localizados? – sbooth

+0

Sí. Ellos no están localizados. –

Respuesta

10

Para obtener el decimal y los equivalentes hexadecimales, que haría:

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

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

Gracias, Ok eso es un poco útil. ¿Pero puedo almacenar 0xe en NSNumber? No puedo asignarlo a un int ya que quiero almacenar esto en NSArray ya que no puede usar tipos de C estándar (mutable o no) –

+1

NSNumber puede ajustar cualquiera de los tipos numéricos primitivos. Por supuesto, una vez que esté haciendo representaciones en cadena de los números, puede almacenar las cadenas en la matriz. –

0

vez que tenga una NSString sólo puede utilizar los métodos de esa clase, como intValue o longValue o floatValue

Cuestiones relacionadas