今天朋友去面試,問到一基礎題,實現正整數到二進位制的轉換。因為對基礎掌握的不牢,此題並未能做出正確解答。我在給他講解一番後,他恍然大悟。
對於十進位制正整數到二進位制的轉換其實很簡單,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫,就是整數所對應的二進位制值。例如5的二進位制就是101(如圖):
通過觀察,便能得出一遞迴過程:
ascii_0是0的ascii碼值,定義如下:
同是需要引用的標頭檔案:
以上的**,便能實現正整數到二進位制的轉換。如果求職者因為這些簡單的題目,而失去了工作的機會,那真的很可惜。平時應注意基礎知識的掌握。對於基礎掌握不牢,就算寫了很多**,那又怎樣……
進製轉換(十進位制轉二進位制)
問題及 輸入乙個非負整數 十進位制 輸出此整數對應的二進位制數 正整數 十進位制 對應的二進位制數 6110 煙台大學計算機與控制工程學院 馮琬淇問題 輸入乙個非負整數 十進位制 輸出此整數對應的二進位制數 include include int main if i 0 i for j i j 0 ...
理解十進位制整數轉二進位制整數
演算法 第四版 中的習題 1.3.5 中有這樣一段 stacks new stack while n 0 for int d s system.out.print d system.out.println 其作用是列印十進位制整數 n 的二進位制表示。下面解釋該演算法背後的道理。為簡化問題,預設輸入...
1039 十進位制整數轉二進位制
給出乙個十進位制的非負整數x,x 216,把它轉換成二進位制數輸出。輸入為多行,每行乙個整數x,至讀入eof結束。每行輸出x對應的二進位制數值。01 3336553501 11100001 1111111111111111 本題有多種解法 可以用迴圈迭代對2的除法和取餘操作,不過處理的順序與輸出順序...