BCD數是用一個字節來表達兩位十進制的數,每四個比特表示一位。所以如果一個BCD數的十六進制是0x12,它表達的就是十進制的12。但是小明沒學過BCD,把所有的BCD數都當作二進制數轉換成十進制輸出了。於是BCD的0x12被輸出成了十進制的18了!
現在,你的程序要讀入這個錯誤的十進制數,然後輸出正確的十進制數。提示:你可以把18轉換回0x12,然後再轉換回12。
輸入格式:
輸入在一行中給出一個[0, 153]范圍內的正整數,保證能轉換回有效的BCD數,也就是說這個整數轉換成十六進制時不會出現A-F的數字。
輸出格式:
輸出對應的十進制數。
輸入樣例:
18
輸出樣例:
12
1 #include <stdio.h> 2 3 int main() 4 { 5 int x; 6 scanf("%d", &x); 7 int n; 8 n = x / 16 * 10 + (x - x / 16 * 16); 9 printf("%d", n); 10 11 return 0; 12 }
(6789) 10 的 8421(即BCD)碼
0110 0111 1000 1001
OK?
1.按下“速凍”和“冷凍”鍵5秒後解除;
2.按鎖符號2秒以上解除。
如果有說明書,可以看一下
試試吧