在objective-c中使用hex

在objective-c中使用hex,objective-c,hex,bits,Objective C,Hex,Bits,我无法在objective-c中完成简单的工作——只是缺乏经验。也许有人能给我指出正确的方向 我有两个NSStrings,在这种格式中,信息从其他对象传递。因此,如果使用其他格式(例如,NSData),我需要转换它们。然而,即使转换成NSData,我也不知道如何实现 NSString *year = @"FC"; ( 1111 1100 ) NSString minutes* = @"0"; ( 0000 0000 ) 我需要从年中削减第一位,并将其添加到分钟。结果应该是这样的: year =

我无法在objective-c中完成简单的工作——只是缺乏经验。也许有人能给我指出正确的方向

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

NSString *year = @"FC"; ( 1111 1100 )
NSString minutes* = @"0"; ( 0000 0000 )
我需要从
中削减第一位,并将其添加到
分钟
。结果应该是这样的:

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

如何执行此操作?

要将字符串转换为整数,请使用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;

等等。

为什么要使用字符串?使用整数,这将非常简单,如
minutes+=year>>6
。请留下一条评论供向下投票。H2CO3您明白我的意思了,我希望使用临时移位和&&运算,但我不知道如何正确地将NSString转换为这种格式。您可以使用
strtol()
函数系列。谢谢您的回答。它确实帮助我了解了如何在代码中使用十六进制,目前我只在纸上了解了计算,所以再次非常感谢。