關於基本資料型別中的位元組問題

2021-09-18 07:40:49 字數 1290 閱讀 3186

int(整型)、short(短整型)、long(長整型)、float(單精度浮點型)、double(雙精度浮點型)、byte(位元組型)、char(字元型)、boolean(布林型)

資料型別

位元組表示範圍

long(長整數)

8-9223372036854775808 ~ 9223372036854775807

int(整數)

4-2147483648 ~ 2147483647

short(短整數)

2-32768 ~ 32767

byte(位)

1-128 ~ 127

char()

10 ~ 255

boolean()

1布林值只能使用 true 或 false

float()

4-3.4e38(-3.4×1038) ~ 3.4e38(3.4×1038)

double()

8-1.7e308(-1.7×10308)~ 1.7e308(1.7×10308)

乙個位元組中的8位分為符號位和數值位。最高位為符號位,即0表示正數,1表示負數。所以這裡11111111=-127,01111111=127.

但是00000000=0,而10000000=-0。 但是在自然數中是沒有-0這個說法的,所以-0就等於了-128。

接著上面的說,為什麼-0就是-128呢,不是-129、-130呢?

這裡要接觸到原碼、反碼、補碼的知識。

正數和0的 原碼=反碼=補碼

負數的  反碼:原碼除符號位外其他位按位取反

補碼:反碼末尾+1

十進位制原碼

反碼補碼

100000001

00000001

00000001

-110000001

11111110

11111111

為什麼二進位制的加減要用補碼?

1-1 = 1+(-1)

十進位制原碼

反碼補碼

1-100000001+10000001 =10000010 = -2

00000001 + 11111110 = 11111111=-127

00000001 + 11111111 = 00000000 = 0

從上面推算的結果來說,補碼是完美適用於加減法。

那麼-128呢

從十進位制算術上計算 -1+(-127 ) = -128

那就是: 10000001+ 11111111 = 10000000

10000000也就是上面說過的-0,為了符合意義,所以-0=10000000=-128

基本資料型別位元組數

16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 unsigned int 2個位元組 float 4個位元組 double 8個位元組 long 4個位元組 long long 8個位元組 unsigned long 4個位元...

C 中的資料型別 基本資料型別

資料的基本型別包括 基本型別和符合型別。其命名最好是按照英文方式命名。如果有多個表示同一事物的變數則可以用下標 123等來命名。如果需要兩個單詞才可以命名的變數則這兩個單詞之間通常使用 來連線。基本資料型別也包括整型和浮點型,接下來我們先來介紹整型。a 整型 short int long longl...

基本資料型別位元組數大小

32位作業系統 char 1個位元組 指標 4個位元組 short 2個位元組 int 4個位元組 unsigned int 4個位元組 float 4個位元組 double 8個位元組 long 4個位元組 unsigned long 4個位元組 long long 8個位元組 64位作業系統 c...