将“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中的十六进制数的主要内容,如果未能解决你的问题,请参考以下文章