回覆列表
  • 1 # 方言影視

    說到二進位制與十進位制的轉換,明明之前學會了,但是許久不用就覺得好像忘記方法了。

    十進位制轉換為二進位制

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

    整數轉二進位制

    採用"除2取餘,逆序排列"法:

    1.首先用2整除一個十進位制整數,得到一個商和餘數 2.然後再用2去除得到的商,又會得到一個商和餘數 3.重複操作,一直到商為小於1時為止 4.然後將得到的所有餘數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!

    假設我們現在需要將42轉為二進位制,那我們怎麼做呢,如下圖所示:

    小數轉二進位制

    採用"乘2取整,順序排列"法:

    1.用2乘十進位制小數,可以得到積,將積的整數部分取出 2.再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出 3.重複操作,直到積中的小數部分為零,此時0或1為二進位制的最後一位,或者達到所要求的精度為止

    例如將0.125轉換為二進位制:

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

    如果小數的整數部分有大於0的整數時,將整數部分和小數部分先單獨轉為二進位制,再合在一起就可以了,例如:

    假設要將8.125 轉換為二進位制現將8轉為二進位制:得到1000再將0.125轉為二進位制:得到0.001合併後為1000.001

    二進位制轉換為十進位制

    二進位制轉為十進位制要從右到左用二進位制的每個數去乘以2的相應次方,小數點後則是從左往右。

    如果首位是0就表示正整數,如果首位是1則表示負整數,正整數可以直接換算,負整數則需要先取反再換算。

    因為計算機內部表示數的位元組單位是定長的。如8位、16位、32位。所以位數不夠時,高位補零。

    如要想二進位制00101010轉為十進位制,因為以0開頭,所以這是正整數,計算如下所示:

    (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

    如果11101011想轉為*負的十進位制,因為最高位是1,所以先減一取反 00010101,然後計算出00010101對應的十進位制為21,所以11101011最終對應的十進位制為 -21。

  • 中秋節和大豐收的關聯?
  • 壓力是如何讓人的身體產生疾病的?