将两位十六进制数转换为整数的最佳方法
Best way to convert two digit hexadecimal number to integer
我想将两个十六进制数转换为整数,但我遇到了一些困难。格式为“#FF”,我想将其转换为 255 或“#00”并转换为 0。但是,当我尝试以下操作时:
unsigned alphaColor = 0;
[[NSScanner scannerWithString:alphaString] scanHexInt:&alphaColor];
alphaVal = alphaColor / 255.0;
它似乎不起作用,因为 alphaColor 为 nil。
有什么想法可以转换两位十六进制数吗?
scanHexInt
不接受#
。它可选择允许前导 0x
或 0x
但不允许 #
。您需要先阅读#
。
NSScanner *scanner = [NSScanner scannerWithString:alphaString];
unsigned alphaColor = 0;
if ([scanner scanString:@"#" intoString:nil] && [scanner scanHexInt:&alphaColor]) {
alphaVal = alphaColor / 255.0;
}
我想将两个十六进制数转换为整数,但我遇到了一些困难。格式为“#FF”,我想将其转换为 255 或“#00”并转换为 0。但是,当我尝试以下操作时:
unsigned alphaColor = 0;
[[NSScanner scannerWithString:alphaString] scanHexInt:&alphaColor];
alphaVal = alphaColor / 255.0;
它似乎不起作用,因为 alphaColor 为 nil。 有什么想法可以转换两位十六进制数吗?
scanHexInt
不接受#
。它可选择允许前导 0x
或 0x
但不允许 #
。您需要先阅读#
。
NSScanner *scanner = [NSScanner scannerWithString:alphaString];
unsigned alphaColor = 0;
if ([scanner scanString:@"#" intoString:nil] && [scanner scanHexInt:&alphaColor]) {
alphaVal = alphaColor / 255.0;
}