轉換為正整數 二進位制和十進位制之間的互相轉換

2021-10-14 17:37:49 字數 1134 閱讀 9113

說到十進位制和二進位制的轉換,明明之前學會了,但是許久不用就覺得好像忘記方法了。希望做好這個筆記後能夠牢牢記住

十進位制轉二進位制分為整數轉二進位制,和小數轉二進位制

1.首先用2整除乙個十進位制整數,得到乙個商和餘數

2.然後再用2去除得到的商,又會得到乙個商和餘數

3.重複操作,一直到商為小於1時為止

4.然後將得到的所有餘數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!

小數轉二進位制

1.用2乘十進位制小數,可以得到積,將積的整數部分取出

2.再用2乘餘下的小數部分,又得到乙個積,再將積的整數部分取出

3.重複操作,直到積中的小數部分為零,此時0或1為二進位制的最後一位,或者達到所要求的精度為止

0.125 * 2 = 0.25 ------00.25 * 2 = 0.5 ------00.5 * 2 = 1.0 ------1
當小數部分為0就可以停止乘2了,然後正序排序就構成了二進位制的小數部分:0.001

假設要將8.125 轉換為二進位制現將8轉為二進位制:得到1000再將0.125轉為二進位制:得到0.001合併後為1000.001
二進位制轉為十進位制要從右到左用二進位制的每個數去乘以2的相應次方,小數點後則是從左往右。

如果首位是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 下面是王道上的解法,模擬的是...