資料型態範圍

記憶體的最小單位為bit,每一個bit可以存0或1,32位元電腦的cpu有32個bit(4byte)的存放區塊可以存放記憶體位址。

位元bit與位元組byte

bit正整數範圍

以下列出1到8個bit可以存放的最大正整數值與正整數範圍。

bit 組合 最大正整數(2進制) 最大正整數(10進制) 可以存放的正整數範圍
1 0/1 1 \(2^1-1 = 1\) 0-1
2 00/01/10/11 11 \(2^2-1 = 3\) 0-3
3 000/001/010/100/110/101/111 111 \(2^3-1 = 7\) 0-7
4 0000/0001/0010…1111 1111 \(2^4-1 = 15\) 0-15
5 00000/00001/…11111 11111 \(2^5-1 = 31\) 0-31
6 000000/000001/…111111 111111 \(2^6-1 = 63\) 0-63
7 0000000/0000001/…1111111 1111111 \(2^7-1 = 127\) 0-127
8 00000000/00000001/…11111111 11111111 \(2^8-1 = 255\) 0-255

byte正整數範圍

由上表可以推斷,1個byte由8個bit組成,可存放最大正整數為255,可以存放的正整數範圍從0-255,共256個數字。

以下列出1byte到4byte最大可存放的數字。

byte bit 最大正整數(10進制)
1byte 11111111 255
2byte 11111111 11111111 65535
3byte 11111111 11111111 11111111 16777216
4byte 11111111 11111111 11111111 11111111 4294967295

科學記號法顯示

byte bit 科學記號法
1byte 11111111 $2^8-1$
2byte 11111111 11111111 $2^8 * 2^8 -1= 2^{8+8}-1 = 2 ^{16}-1 $
3byte 11111111 11111111 11111111 $2^8 * 2^8 * 2^8-1 = 2^{8+8+8}-1$
4byte 11111111 11111111 11111111 11111111 $2^8 * 2^8 * 2^8 * 2^8-1 = 2^{8+8+8+8}-1 = 2 ^{32}-1 $

正負數

若資料型態是包含正負數,會將最大整數減半,一半分給正數,一半分給負數。最左邊的第1個bit就會變成正負號,0為正數,1為負數。負數的二進制顯示方式為把正數的二進制0和1互換,最後再加1。

正負數

二進位 正負數
01111111 127
10000001 -127
01111111 11111111 32767
10000000 00000001 -32768
01111111 11111111 11111111 8388607
10000000 00000000 00000001 -8388608
01111111 11111111 11111111 11111111 2147483647
10000000 00000000 00000000 00000001 -2147483648

正負數範圍

占用Byte數量 正負數範圍
1byte -128~127
2byte -32768~32767
3byte -8388608~8388607
4byte -2147483648~2147483647

unsinged正整數

unsigned代表沒有符號,所以只有正整數,不會有負號。

占用Byte數量 正數範圍
1byte 0~255
2byte 0~65535
3byte 0~16777216
4byte 0~4294967295

results matching ""

    No results matching ""