【问题标题】:Working with hex in objective-c在objective-c中使用十六进制
【发布时间】:2013-01-03 09:47:25
【问题描述】:

我无法在 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 )

我该怎么做?

【问题讨论】:

  • 你为什么要使用字符串呢?使用整数,就像minutes += year >> 6 一样简单。
  • 发表评论以进行投票。 H2CO3 你明白了,我很想使用随意的班次和 && 操作,但我不知道如何正确地将 NSString 转换为这种格式。
  • 您可以使用strtol() 系列函数。
  • 感谢您的回答。它确实帮助我理解了如何在代码中使用十六进制,目前我只了解纸上的计算,所以再次感谢。

标签: objective-c hex bits


【解决方案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;

等等

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 2014-04-19
    • 2012-09-08
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2015-12-02
    • 2012-07-15
    相关资源
    最近更新 更多