7-17 BCD解密(10 分)
生活随笔
收集整理的這篇文章主要介紹了
7-17 BCD解密(10 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BCD數是用一個字節來表達兩位十進制的數,每四個比特表示一位。所以如果一個BCD數的十六進制是0x12,它表達的就是十進制的12。但是小明沒學過BCD,把所有的BCD數都當作二進制數轉換成十進制輸出了。于是BCD的0x12被輸出成了十進制的18了!
現在,你的程序要讀入這個錯誤的十進制數,然后輸出正確的十進制數。提示:你可以把18轉換回0x12,然后再轉換回12。
輸入格式:
輸入在一行中給出一個[0, 153]范圍內的正整數,保證能轉換回有效的BCD數,也就是說這個整數轉換成十六進制時不會出現A-F的數字。
輸出格式:
輸出對應的十進制數。
輸入樣例:
18輸出樣例:
121 #include<stdio.h> 2 3 int main() 4 { 5 int x, a, b; 6 scanf("%d", &x); 7 a = x / 16; 8 b = x % 16; 9 printf("%d%d", a, b) 10 11 return 0; 12 }
才開始像上面那樣寫的,結果測試的時候最后一個測試條件錯了。提示是最小數錯誤,想想,這樣輸出的話,0的話會輸出00,這樣格式就錯了。
解決的辦法可以是,輸出 10*a + b,這樣就不會有00的錯誤了。
轉載于:https://www.cnblogs.com/zlqw/p/8451498.html
總結
以上是生活随笔為你收集整理的7-17 BCD解密(10 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当别人不听我们的话的时候
- 下一篇: linux iptables:安全应用,