将“ff0000”之类的字符串转换为目标c中的十六进制数

Posted

技术标签:

【中文标题】将“ff0000”之类的字符串转换为目标c中的十六进制数【英文标题】:Convert a string like "ff0000" to hexadecimal number in objective c 【发布时间】:2012-12-15 21:05:13 【问题描述】:

我需要将来自 UI 的字符串输入转换为目标 c 中的十六进制数。该字符串是一个 html 颜色代码,如 "ff0000"('#' 将以图表方式处理),它应该被转换为数字 ff0000 以提供颜色选择。或者,目标 c 中是否有颜色选择器?在 xib 对象中找不到。

【问题讨论】:

***.com/questions/3648411/… How to convert HEX RGB color codes to UIColor?的可能重复 Fis'Zen,您提供的链接涉及将十六进制转换为十进制,这不是我问的。 @rob,您是对的,但是由于我确实搜索了答案并且找不到该帖子(它使用不同的方式来描述问题),因此最好将两者保持不变,前提是人们可以找到我的问题看看你的链接,也许? 请注意,实际上并没有十六进制数之类的东西,它只是一种显示类型。所以这个问题可能会更好:将十六进制字符串表示形式转换为整数。 【参考方案1】:

来自Objective C parse hex string to integer

unsigned result = 0;
NSScanner *scanner = [NSScanner scannerWithString:@"ff0000"];
[scanner scanHexInt:&result];

或使用“c”:

uint32_t value;
NSString *stringValue = @"ff0000";
const char *string = [stringValue cStringUsingEncoding:NSUTF8StringEncoding];
sscanf(string, "%x" , &value);

【讨论】:

谢谢,我想我会试试这个。【参考方案2】:

您可以使用以下行进行转换。它只有一行代码:

NSString *hexString = @"01FFFFAB";
length = (UInt64)strtoull([sizeLine UTF8String], NULL, 16);
NSLog(@"The required Length is %d", length);

编码愉快!!!

【讨论】:

以上是关于将“ff0000”之类的字符串转换为目标c中的十六进制数的主要内容,如果未能解决你的问题,请参考以下文章

如何将十六进制字符串转换为C中的二进制文件

如何将包含 UTF-8 十六进制值的字符串转换为 C 中的 wchar?

怎样将十六进制代码转换成文字?

js将十六进制颜色转透明度的函数

如何将十六进制转换为RGB

16进制颜色代码记忆规律/?