我在這裏試圖將4位hexa轉換爲dec但未成功。 這是我的代碼。將十六進制掃描(scanf)從unsigned int數組轉換爲十進制
unsigned int array[4];
printf("Type in 4-digit hexa: \n");
scanf("%x", &array);
while(getchar() != '\n');
printf("Your number in dec is %u \n", array);
我不知道它有什麼問題,但它不會給出正確的dec輸出。 就像我把EEFF放進去一樣,它應該發出61183,但程序不斷打印出65518.
這個數字從哪裏來?我的代碼有什麼問題?根據我的考慮,我使用了unsigned int,FFFF等於65385,unsigned int的範圍是0到65535.數據範圍應該沒有問題,我也使用%u。
我已經做了一些搜索後,我現在唯一能想到的問題是,這個問題可能與無符號整數的int大小有關。 我看了解釋,但不太明白。
我知道,這可能是重複,但我在這裏要求一個更容易的解釋 爲什麼這是行不通的。說實話,我對這個網站和編程都是一個絕對的新手,所以請在編碼上輕鬆一點。僅供參考,除了stdio.h之外,我什麼都不知道。
我嘗試使用代碼「展開」建議,它的工作很精美。謝謝你,放鬆一下,還有每個來到這裏幫助我的人! – 2012-01-27 14:36:26
FYI http://www.cplusplus.com/ - 這個網站有很多的例子,可能會幫助你瞭解c/C++的美麗...... – enam 2012-01-28 13:44:46
謝謝你的建議。我一定會深入研究它。 :D – 2012-01-29 07:00:36