arduino - 将两个 ASCII DEC 值合并在一起并转换为 int
问题描述
我有两个 DEC 变量,我想像这样合并它们:
unsigned int first_dig = 57; // Number 9
unsigned int second_dig = 52; // Number 4
unsigned int all_dig = 0;
现在我想将它们保存在 all_dig 中。我已经尝试过移动字节,但结果是一团糟
all_dig = ((first_dig<<8)|second_dig); // prints 14644
我希望 all_dig 包含94
. 有没有更简单的方法?我也想对三位数字使用相同的概念。
已经感谢您的帮助
解决方案
对于两位数,d_1, d_0
:
res = (d_1 - '0') * 10 + (d_0 - '0')
对于三位数,d_2, d_1, d_0
:
res = (d_2 - '0') * 100 + (d_1 - '0') * 10 + (d_0 - '0')
请注意,表达式仅在以下情况下有效
'0' <= d_i <= '9' for each d_i
如果不是这样,结果将不正确。
推荐阅读
- ignite - CassandraCacheStoreFactory 不加载 dataSourceBean
- delphi - Indy 10 编译失败并启用 FASTMM 编译器指令
- javascript - javascript fetch api 在本地和服务器上的行为不同
- sql - SQL。根据日期连接来自 3 个或更多表的记录
- python - 高级 MultiIndex 排序和索引
- sas - 日期和按 id 分组的变量之间的 sas 计数变化
- android - 带有 Dagger 2 的 Android Java ViewModel
- php - 如何在php中格式化sql的返回值?
- ios - 框架链接
- php - 在PHP中将多维数组插入mysql表的最佳方法是什么