簡體   English   中英

'0' 的代碼 ascii 從 48 變為 0 我該如何解決?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM