說到十進位制和二進位制的轉換,明明之前學會了,但是許久不用就覺得好像忘記方法了。希望做好這個筆記後能夠牢牢記住
十進位制轉二進位制分為整數轉二進位制,和小數轉二進位制
1.首先用2整除乙個十進位制整數,得到乙個商和餘數2.然後再用2去除得到的商,又會得到乙個商和餘數
3.重複操作,一直到商為小於1時為止
4.然後將得到的所有餘數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!
小數轉二進位制
1.用2乘十進位制小數,可以得到積,將積的整數部分取出2.再用2乘餘下的小數部分,又得到乙個積,再將積的整數部分取出
3.重複操作,直到積中的小數部分為零,此時0或1為二進位制的最後一位,或者達到所要求的精度為止
當小數部分為0就可以停止乘2了,然後正序排序就構成了二進位制的小數部分:0.0010.125 * 2 = 0.25 ------00.25 * 2 = 0.5 ------00.5 * 2 = 1.0 ------1
二進位制轉為十進位制要從右到左用二進位制的每個數去乘以2的相應次方,小數點後則是從左往右。假設要將8.125 轉換為二進位制現將8轉為二進位制:得到1000再將0.125轉為二進位制:得到0.001合併後為1000.001
如果首位是0就表示正整數,如果首位是1則表示負整數,正整數可以直接換算,負整數則需要先取反再換算。
因為計算機內部表示數的位元組單位是定長的。如8位、16位、32位。所以位數不夠時,高位補零。
(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42十進位制 轉換為 二進位制
聽說優酷前端面試有問進製數轉換的,甚至是負正整數轉換為二進位制,那就索性一次整個明白 正整數轉二進位制 負整數轉二進位制 小數轉二進位制 1 正整數轉成二進位制。口訣 除二取餘,倒序排列,高位補零。42 除以2得到的餘數 右邊 為010101,然後倒著排一下就是取到的二進位制了 如下圖 計算機內部表...
數值轉換 十進位制正整數轉二進位制
今天朋友去面試,問到一基礎題,實現正整數到二進位制的轉換。因為對基礎掌握的不牢,此題並未能做出正確解答。我在給他講解一番後,他恍然大悟。對於十進位制正整數到二進位制的轉換其實很簡單,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫,就是整數所對應的二進位制值。例如5的二進位制就是101 如圖 ...
(string)十進位制 轉換為 二進位制
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。輸入描述 多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 輸出描述 每行輸出對應的二進位制數。輸入 013 8輸出 0111 1000 下面是王道上的解法,模擬的是...