objective-c - 将两位十六进制数转换为整数的最佳方法
问题描述
我想将两个十六进制数转换为整数,但我遇到了一些困难。格式为“#FF”,我想将其转换为 255 或“#00”并转换为 0。但是当我尝试以下操作时:
unsigned alphaColor = 0;
[[NSScanner scannerWithString:alphaString] scanHexInt:&alphaColor];
alphaVal = alphaColor / 255.0;
它似乎不起作用,因为 alphaColor 为零。有什么想法可以转换两位十六进制吗?
解决方案
scanHexInt
不接受#
。它可以选择允许前导0x
或0x
但不允许#
。您需要阅读第#
一个。
NSScanner *scanner = [NSScanner scannerWithString:alphaString];
unsigned alphaColor = 0;
if ([scanner scanString:@"#" intoString:nil] && [scanner scanHexInt:&alphaColor]) {
alphaVal = alphaColor / 255.0;
}
推荐阅读
- javascript - 如何创建保留在页面上且不受滚动影响的 HTML 元素?
- mysql - 带有条件 WHERE 子句的 SQL SELECT
- visual-studio - 在 hololens 模拟器中使用 UI 制作的错位 UI
- reactjs - 在电子商务 Mern 堆栈中应用代码拆分?
- sql - 如何编写查询以清理给定问题的表
- postgresql - Postgresql:尝试连接数据库时出现异常
- python - 如何根据另一列的特定值对 python 数据框进行操作?
- c# - 如何在devexpress的gridvew中将按钮添加到最后一行
- for-loop - 批处理 - 如何使用来自 html 的 for /f 设置 var
- c++ - 错误:此处声明了模板。类_LIBCPP_TEMPLATE_VIS basic_stringstream;