問題描述
十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推,十進位制的30在十六進製制中是1e。
給出乙個非負整數,將它表示成十六進製制的形式。
輸入格式
輸入包含乙個非負整數a,表示要轉換的數。0<=a<=2147483647
輸出格式
輸出這個整數的16進製表示
樣例輸入
30樣例輸出
1eenmmm,時間隔太久,不知道從什麼地方說起,先貼**吧:
#include
char getnum
(int a)
} int main()
//0不能作被除數,所以如果輸入0,則直接輸出0
else
for(i-=
1;i>=
0;i--
)//i-=1,指向最後一位,倒序輸出,這個解釋有點麻煩,自己理解吧
}return0;
}
首先解釋一下,筆者的思路很簡單,就是先將輸入的十進位制數n除以16得到商和餘數,餘數直接放入申請好的陣列中,如果商大於等於16,那麼就迴圈上面這個操作。
這樣我們會得到一串陣列,陣列中的每一位餘數代表這個數n所對應的十六進製制數的每一位的數值(十進位制)。
然後將這些數值用switch函式轉化成十六進製制數就得到了我們想要的結果。
嗯,可能讀者會看不懂,畢竟筆者的表達能力真的不行,看不懂的就直接看**吧,實在抱歉。
需要注意的點**中都有標出,好了,筆者繼續去肝下一題了t-t
藍橋杯基礎練習 十進位制轉十六進製制
問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...
藍橋杯基礎練習十六進製制轉十進位制
問題描述 從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。注 十六進製制數中的10 15分別用大寫的英文本母a b c d e f表示。樣例輸入 ffff 樣例輸出 65535 直接轉化即可,注意資料範圍。code include include include in...
藍橋杯基礎練習 十進位制轉十六進製制
問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...