c - '0' 的代码 ascii 从 48 变为 0 我该如何解决?
问题描述
我正在尝试创建一个表,其中包含以 16 为基数的所有数字(它们是字符)的 ASCII 代码,但是字符“0”没有按预期工作,在循环“for”中我可以看到代码ASCII 保持在 48,但一旦我退出它并尝试再次查看 '0' 的代码 ASCII,它现在已移动到 0
for (int i = 0; i < 16; ++i) {
if(i>9){
tableaubase[i]=48+i+7;
} else{
tableaubase[i]=48+i;
}
printf("tableaubase[%d] : %d \n", i, tableaubase[i]);
printf("tableaubase[%d] : %d \n", 0, tableaubase[0]);
}
printf("tableaubase[%d] : %d \n", 0, tableaubase[0]);
解决方案
我相信你想要
if (i < 10) {
tableaubase[i] = '0' + i;
} else{
tableaubase[i] = 'A' + (i-10);
}
请注意,这需要基于 ASCII 的机器。基于 EBCDIC 的机器上的字母不是连续的。
这不会改变 发生的事情i == 0
,这已经是正确的。这只是使代码更具可读性。
推荐阅读
- reactjs - 在 react-native 中的 useEffect 之前获取用户位置
- javascript - 将值限制为 Node.js 中的变量
- python - 如何使用 python 多次重复此脚本
- sql - 循环卡在 Trigger postgresql 上
- google-apps-script - 外出 G Suite 脚本
- vba - MS Access 一个表单以选择表值并用于填充其他表单上的多个字段?
- phpmyadmin - 如何将 phpMyAdmin 连接到 Ampps 中的数据库?
- exoplayer2.x - Exoplayer 离线播放与 DRM
- loops - 树枝 | 在 if 条件中访问 for 循环的索引(添加到字符串)
- python - Pandas 网络分析