1. 程式人生 > >計算機考研複試真題 進位制轉換

計算機考研複試真題 進位制轉換

題目描述

寫出一個程式,接受一個十六進位制的數值字串,輸出該數值的十進位制字串(注意可能存在的一個測試用例裡的多組資料)。

輸入描述:

輸入一個十六進位制的數值字串。

輸出描述:

輸出該數值的十進位制字串。

示例1

輸入

0xA

輸出

10




/*EOF
在C語言中,或更精確地說成C標準函式庫中表示檔案結束符(end of file)。在while迴圈中以EOF作為檔案結束標誌,這種以EOF作為檔案結束標誌的檔案,必須是文字檔案。
在文字檔案中,資料都是以字元的ASCII程式碼值的形式存放。我們知道,ASCII程式碼值的範圍是0~255,不可能出現-1,因此可以用EOF作為檔案結束標誌。 C語言中,EOF常被作為檔案結束的標誌。還有很多檔案處理函式處錯誤後的返回值也是EOF,因此常被用來判斷呼叫一個函式是否成功。 while(~scanf("%d",&n)) <=> while(scanf("%d",&n)!=EOF) 1.正常輸入的時候,scanf返回輸入的數字如1,2,3等等,對這些數字取非,不會成為0,就會執行迴圈; 2.錯誤輸入指的就是沒有輸入的時候,scanf返回的是EOF(End Of File),EOF=-1,對EOF取非,就是對-1取非 [~是位運算,它是將資料在記憶體中的每一位(當然是二進位制)取反。-1在記憶體中所有位全部為1,~(-1)=0,即對-1取非就是0] 就會跳出迴圈。
*/ #include <stdio.h> int main(void) { int num = 0; while (~scanf ("%x", &num)) printf("%d\n", num); return 0; }