float,double資料型別在記憶體中的儲存方式

2021-07-01 18:15:36 字數 1220 閱讀 4982

float在記憶體中用四個byte表示

符號位 sign

指數字 exponent

尾數 mantissa

1 bit

8 bits

23 bits

符號位:1正0負

指數字:範圍從0~255,但實際的指數等於這裡的指數減去127,所以真正的指數範圍從-127~128。

尾數:23bit的尾數實際上表示24bit的資料,因為所有二進位制小數都可以表示成1.***x ***x…。所以在表示24bit的二進位制小數時,1可以省略。

例如4.5在記憶體中表示為:

二進位制形式:100.1==>1*2^2 + 0*2^1 + 0*2^0 + 1*2^-1 = 4.5

記憶體中:

符號位 sign

指數字 exponent

尾數 mantissa

01000 0001

0010 0000 0000 0000 0000 000

合起來為:

0100 0000 1001 0000 0000 0000 0000 0000

0x40 90 00 00

將記憶體形式再轉換回十進位制形式的4.5:

1.0010 0000 0000 0000 0000 000(尾數) * 2^2(指數129-127=2)=100.1000 0000 0000 0000 0000 0
又如0.1在記憶體中表示為:

二進位制形式:0.0001 1001 1001 1001 1001 1001 1010==>0x0.199999a

記憶體中:

符號位 sign

指數字 exponent

尾數 mantissa

00111 1011

1001 1001 1001 1001 1001 101

合起來:

0011 1101  1100 1100 1100 1100 1100 1101

0x 3d cc cc cd

float在記憶體中用8個byte表示

符號位 sign

指數字 exponent

尾數 mantissa

1 bit

11 bits

52 bits

具體儲存形式和float相同。

資料型別基礎資料型別

資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...

資料型別 基本資料型別和引用資料型別

一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...

SQL 資料型別 MySQL 資料型別

在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。資料型別 描述char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...