double型資料儲存

2022-09-03 01:42:12 字數 492 閱讀 9988

double型佔64位(0~63)

其中最高位63bit表示符號:0正1負

62~52bit:11位的指數字

52~0bit:52位的資料位

舉例說明:-64.446263

共8位元組,63bit:1; 

62~52bit:   64=100 000; 所以指數應該是7,這裡使用隱藏位技術,第一位1隱藏,所以指數字=6;同時指數字基數為1023所以最終為1029=100 0000 0101;

52~0:前6位應該是00 0000(64=100 0000 隱藏最高位1);剩下46位表示0.446263

使用十六進製制表示: 0x c0 00  50 ......

實際儲存為高位位元組在最右邊。

char型轉成double型在c++中可以使用memcpy函式:

char temp[8] = ;

double d=0

; memcpy(&d, temp, 8);

double型資料輸入輸出

double a scanf f a 應該使用scanf lf a 執行上面語句時,發現double型別的輸入不能使用 f進行輸入,得用 lf才能正常得到a的值。而在輸出double型別時卻可以用 f,這是因為printf只認識雙精度,遇到 f自動將float型的引數轉換成double型。但是因為s...

float和double型資料算術運算

計算機中儲存數字是用2進製表示的,所有在儲存double型別的資料並不能精確到0.1,所以在用double做操作的時候會因為精度問題出現一些和實際不一樣的結果,如果要求精度很高的話就用bigdecimal來計算,bigdecimal提供了加 減 乘 除的方法,直接呼叫就可以了。如 計算兩個doubl...

把double型轉換為int型

double d1 100.00 double d1 new double d1 int i1 d1.intvalue 簡單型別的變數轉換為相應的包裝類,可以利用包裝類的建構函式。即 boolean boolean value character char value integer int val...