二進位制與十進位制的轉換

2021-06-29 11:22:38 字數 1395 閱讀 1911

本文參考:文獻整理所得。

1.正整數的十進位制轉換為二進位制.

十進位制整數轉換為二進位制整數採用"

除2取餘,逆序排列

"法。具體做法是:用2

整除十進位制整數,可以得到乙個商和餘數;再用2去除商,又會得到乙個商和餘數,如此進行,直到商為0時為止,然後把

先得到的餘數

作為二進位制數的

低位有效位

,後得到的餘數

作為二進位制數的

高位有效

位,依次排列起來。

2.負整數的十進位制轉換為二進位制.

取反加一。即先得到負整數對應的正整數的二進位制位,再取反,最後加1.

3.十進位制小數轉化為二進位制小數

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

"法。具體做法是:用2乘十進位制小數,可以得到積,將積的整數部分

取出,再用2乘餘下的小數部分,又得到乙個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零

,此時0或1為二進位制的最後一位。或者達到所要求的精度為止。然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

十進位制小數轉二進位制

如:0.625=(0.101)b

0.625*2=1.25*****=取出

整數部分1

0.25*2=0.5*****===取出

整數部分0

0.5*2=1**********取出整數部分1

再如:0.7=(0.1 0110 0110...)b

0.7*2=1.4*****===取出整數部分1

0.4*2=0.8*****===取出整數部分0

0.8*2=1.6*****===取出整數部分1

0.6*2=1.2*****===取出整數部分1

0.2*2=0.4*****===取出整數部分0

0.4*2=0.8*****===取出整數部分0

0.8*2=1.6*****===取出整數部分1

0.6*2=1.2*****===取出整數部分1

0.2*2=0.4*****===取出整數部分0

這時開始出現迴圈,這時書寫方法為在迴圈的序列的第一位和最後一位加點,即

4.二進位制轉換為十進位制

正數用數值乘以二的冪次依次相加,負數用數值乘以二的負冪次依次相加。

如果首位為0,則表明為正數,直接去做即可;否則如果首位為1,則表明為負數,需要先取反,再做。

十進位制二進位制轉換

一 整形裝換成兩個位元組 int value 456 unsigned char byte1 value 0xff00 8 高8位 unsigned char byte2 value 0xff 低8位 nslog byte1 x byte2 x byte1,byte2 byte1 1 byte2 c...

十進位制二進位制轉換

1.十進位制轉二進位制 正整數轉二進位制 除二取餘,然後倒序排列,高位補零 負整數轉二進位制 先是將對應的正整數轉換成二進位制後,對二進位製取反,然後對結果再加一。小數轉換二進位制 對小數點以後的數乘以2,取結果的整數部分 不是1就是0嘍 然後再用小數部分再乘以2,再取結果的整數部分 以此類推,直到...

十進位制二進位制轉換

二進位制轉十進位制 二進位制的1101轉化成十進位制 1101 2 1 2o 0 21 1 22 1 23 1 0 4 8 13 轉化成十進位制要從右到左用二進位制的每個數去乘以2的相應次方 不過次方要從0開始 相反 用十進位制的數除以2 每除一下將餘數就記在旁邊 最後按餘數從下向上排列就可得到11...