轉化規則
一般十進位制數有整數部分和小數部分組成,兩個部分其轉化規則是不相同的。因此首先把十進位制數的兩個部分分開來。
整數部分:通過除二取餘法將餘數倒序記錄下來,直到除到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...