上機習題
#1題目:數字不同進位制之轉換。
說明:一個數值資料可以利用不同的進位制來表示。在使用不同進位制表示資料時,為了分辨所用之進位制,除了數值資料外,再用另外的規定或符號表示之。在此,我們規定不同進位制的表示法如下:
一般數值資料即為十進位(decimal),如29為十進位。
若是開頭為0,則為八進位(octal),如035為八進位。
若是開頭為0x,則為十六進位(hexadecimal),如0x1D為十六進位。
若是結尾為b,則為二進位(binary),如11101b為二進位。
請撰寫一個程式,讀入一串資料,判斷此資料是否為合法的數值資料。若是合法數值資料,則判斷它是何種進位制,然後將此資料用以上四種進位制顯示出來。若是不合法資料,則判斷它最接近哪一種合法數值。
例如,若輸入資料為
035
則輸出為
十進位:29
八進位:035 十六進位:0x1D 二進位:11101b
其他輸入錯誤範例如下:
輸入資料 輸出 ABC12 資料格式錯誤 0y1D 資料格式錯誤,是否為0x1D? 011101b 資料格式錯誤,是否為11101b? 035b 資料格式錯誤,是否為035?
此程式以文字模式撰寫即可,當然使用視窗撰寫亦可。