[英]code ascii for '0' shifts from 48 to 0 how do i fix it?
我正在嘗試創建一個包含以 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
發生的情況,這已經是正確的。 這只會使代碼更具可讀性。
把事情簡單化。
char base16[16] = "0123456789ABCDEF";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.