十進位制轉為二進位制

2021-10-07 14:16:40 字數 1229 閱讀 9244

轉化規則

一般十進位制數有整數部分和小數部分組成,兩個部分其轉化規則是不相同的。因此首先把十進位制數的兩個部分分開來。

整數部分:通過除二取餘法將餘數倒序記錄下來,直到除到0

小數部分:通過乘二取整法將整數正序記錄下來。

//十進位制轉化為二進位制

void

switch

(float a)

//小數部分化為二進位制(保留4位)

int q[4]

,n =0;

for(

int i =

0; i <

4; i++

)else

if(w ==1)

else

q[i]=0

; n++;}

//輸出結果

while(!

isempty

(s))

cout <<

".";

for(

int i =

0; i <= n; i++

) cout << q[i];}

//二進位製化十進位制

void

switch1

(char

*str)

}char

*begin = str,

*end = str;

//p記錄小數點的位置

while

(*end !=

'\0'

&&*end !=

'.')

end++

; p = end;

end--

;//end指向整數部分最後一位

int i =0;

float a =0;

//指數

while

(begin != end)

a +=pow(2

*1.0

,i);

begin = end = p +1;

while

(*end !=

'\0'

) end++

; end--

;//end指向小數部分最後一位

float b =

0; i =-1

;while

(begin != end)

b +=pow(2

*1.0

,i);

cout << a + b;

}

十進位制小數轉為二進位制

十進位制數轉換為二進位制的大家都清楚了,那麼帶小數的十進位制如何轉換為二進位制?整數部分當然和十進位制整數轉換方式一樣,也就是說小數部分如何轉化為二進位制?方法 乘2取整法,即將小數部分乘以2,然後取整數部分,剩下的小數部分繼續乘以2,然後取整數部分,剩下的小數部分又乘以2,一直取到小數部分為零為止...

十進位制小數轉為二進位制小數

整數和小數分別轉換.整數除以2,商繼續除以2,得到0為止,將餘數逆序排列.22 2 11 餘 0 11 2 5 餘 1 5 2 2 餘 1 2 2 1 餘 0 1 2 0 餘 1 所以22的二進位制是10110 小數乘以2,取整,小數部分繼續乘以2,取整,得到小數部分0為止,將整數順序排列.0.81...

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...