C語言把浮點數轉換為二進位制數的方法和示例

2021-10-05 11:06:22 字數 1433 閱讀 6107

浮點資料轉換為二進位制的方法是:

1)把浮點數拆分成兩部分,小數點前面的整數和小數點後面的小數。

2)分別把整數和小數部分轉換為二進位制,儲存在字串中。

3)輸出轉換後和二進位制字串。

1)把十進數除以2,記下餘數(餘數儲存在字串中),現用商除以2,再記下餘數,如此迴圈,直到商為0。

2)把儲存餘數的字串反過來,就是結果。

例如123轉化成二進位制:

123/2=61餘1

61/2=30餘1

30/2=15餘0

15/2=7餘1

7/2=3餘1

3/2=1餘1

1/1=0餘1

結果是1101111,反過來就是1111011。

1)把小數乘以2,假設結果是s,如果s大於1,該位二進位制值為1,如果小於1,該位二進位制值為0;

2)把上一步的結果s去掉整數字,只保留小數字,假設得到結果xs,如果xs等於0,轉換結束,如果xs大於0,重複第1)步。

例如0.2轉換為二進位制:

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

…… 無限迴圈

浮點數123.2,轉換為二進位制的結果是1111011.00110011001100110011(小數點後保留20位)。

/*

* 程式名:book.c,此程式用於把浮點數轉換為二進位制的字串。

*/#include

"stdio.h"

#include

// 把浮點數的整數部分轉換為二進位制的字串。

// dec:待轉換的浮點數的整數部分。

void

dectobin

(const

long dec,

char

*pbin)

// 再把result字串反過來,存放在pbin中。

int jj=0;

for(

;ii>

0;ii--

) pbin[jj]=0

;// 出於安全的考慮,加上0表示字串結束。

}// 把浮點數小數部分轉換為二進位制的字串。

// decp:待轉換的浮點數的小數部分。

// maxp:指定pbin字串保留的長度。

void

decptobin

(const

double decp,

char

*pbin,

const

int maxp)

pbin[ii]=0

;// 出於安全的考慮,加上0表示字串結束。

}int

main()

執行效果

十進位制浮點數轉換為二進位制

浮點數儲存 浮點數在計算機中儲存也是以二進位制的形式,遵循ieee二進位制算數標準 格式為 float 符號位 首位 指數字 8位 尾數 23位 double 符號位 首位 指數字 11位 尾數 52位 十進位制浮點數轉換為二進位制 方法 整數部分 除以2,取出餘數,商繼續除以2,直到得到0為止,將...

浮點數的二進位制

1.前幾天,我在讀一本c語言教材,有一道例題 include void main void 在我的編譯器下 編譯是會發生錯誤的。錯誤 cannot convert from int to float win7 vc6.0 sp6 執行結果如下 num的值為 9 pfloat的值為 0.000000 ...

浮點數轉化二進位制

乙個int型別表示的整數值是 2 31 2 31 1 32位二進位制表示 1111111111111111 11111111 11111111 011111111 11111111 11111111 1111111 類似整數聯想到浮點數是怎麼表示的呢?最初正常人可能為這樣想的 但是這樣好像表示的數也...