2013-01-03 121 views
-1

我无法在objective-c中工作,只是缺乏经验。也许有人可以指出我正确的方向。在objective-c中使用十六进制

我有两个NSStrings,在这种格式信息从其他对象传递。所以如果使用其他格式(例如NSData),我需要转换它们。然而,即使转换到NSData我不知道如何完成它。

NSString *year = @"FC"; (1111 1100) 
NSString minutes* = @"0"; (0000 0000) 

我需要从year削减第一位,并把它们添加到minutes。结果应该是这样的:

year = 3C (0011 1100) 
minutes = 30 (0011 0000) 

我应该怎么做呢?

+2

你为什么要使用字符串是什么?使用整数,就像'minutes + = year >> 6'一样简单。 – 2013-01-03 09:53:16

+0

Leave a comment for downvoting。 H2CO3你明白了,我很乐意使用随便转换和&&操作,但我不知道如何将NSString转换为这种格式。 – Datenshi

+0

你可以使用'strtol()'函数族。 – 2013-01-03 10:11:33

回答

1

为了将字符串转换为整数,使用C标准库函数:

NSString *year = @"FC"; 
NSString *minutes = @"0"; 
int yearInt = strtol([year UTF8String], NULL, 16); 
int minInt = strtol([minutes UTF8String], NULL, 16); 

minInt += (year >> 6) & 0x03;