C 中資料資料的基本型別

2021-08-26 20:36:57 字數 1903 閱讀 2904

c++中資料基本型別包含整型與浮點型。c++對整型和浮點型提供了多種變體,以適合在不同情況下的使用

整型就是表示沒有小數部分的數字。c++中基本整型有char short int long long long,每一種整型又具有signend or unsigned2個形式。

c++提供的整型位數標準為:

- short至少16位

- int至少與short一樣長

- long至少32位,且至少與int一樣長

- long long 至少64位,且至少與long一樣長

在我的電腦裡,char short int long 和 long long分別對應的位元組數為 1 2 4 4 8。

另外,可以通過標頭檔案climits來檢視各個基本型別的最大最小值。

在對無符號數和有符號數進行運算時候,注意資料溢位的情況。

如 ushrt_max+3 //結果為2

shrt_min-1 //結果為32767

shrt_min-2 //結果為32766

shrt_max+1 //結果為-32768

shrt_max+2// 結果為-32767

把有符號數賦值給無符號數是合法的:

正數的有符號數賦值給無符號數值是不變的

負數賦值給無符號數相當於是該負數對該型別的取值個數求模後的值。

浮點數的型別包含了float double 和long double,分別表示單精度,雙精度,擴充套件精度浮點數。在我電腦上,佔的位元組位數分別為4,8,8。其中float表示的浮點數的精度為6位,double表示的浮點數精度為10位。

浮點數在計算機中是怎麼表示的呢:

浮點數表示方法是有ieee754規定的 其中講數字分解成3部分:符號位(s),指數部分(e),尾數部分(m)

單精度時:x = (-1)^s*(1.m)*2^(e-127) m 23為 e 8位 s 1位 共32位

雙精度:x = (-1)^s*(1.m)*2^(e-1023) m 47為 e 16位 s 1位 共32位

比如數字3.75轉化為float為例

將其轉化為2進製為11.11

再將其轉化為科學技術法有1.111*2^1

符號位s: 0

指數為e: e-127 = 1 故 e=128 e = 1000 0000

尾數m: 111000000000…

得最後數字表示方法為 0100 0000 0111 0000 0000 0000 0000 0000

講不同型別進行計算時,會進行型別轉換。轉換規則如下:

- 如果乙個運算元時long double ,則另外乙個數字轉換為long double

- 否則,如果有乙個數時double,則另外乙個數字轉化為double

- 否則,如果有乙個數時float,則另外乙個數字轉化為float

- 否則,說明運算元都是整型,因此執行整型提公升

- 在這種情況下,如果2個運算元都是有符號或無符號的,其中乙個運算元級別比另外乙個低,則轉化為級別高的型別。

- 如果乙個運算元為有符號的,另乙個運算元為無符號的,且無符號運算元級別比有符號運算元高,則將有符號運算元轉換為無符號運算元所屬的型別

- 否則,如果有符號型別可表示無符號型別所有可能取值,則將無符號運算元轉換為有符號數運算元所屬的型別

- 否則,將2個運算元都轉換為有符號型別的無符號版本。

在計算表示式時候,c++將bool char unsigned char signed char 和short值轉換為int。若short比int短,則unsigned short將轉化為int,如short和int一樣長,則unsigned short將轉化為unsigned.

c++prrimer plus

c++primer

資料基本型別

js的資料型別有兩大類 基本資料型別 number 數字型別。string 字串型別。boolean true false。null null。本質是乙個空物件。undefined undefined。乙個變數宣告後未賦值就是undefined。引用資料型別 object 又分為 object 常規...

資料基本型別及對應基本型別類

基本資料型別 char 16位 byte 8位 short 16位 int 32位 long,float,double,boolean 基本資料型別對應類 character,byte,short,integer,long,float,double,boolean,string 幾乎所有型別類都有相...

python資料基本型別

1.整數 int 計算和比較 整數可以進行的操作 bit length 計算整數在記憶體中占用的二進位製碼的長度 2.布林值 bool 布林值 用於條件使用 true 真 false 假 print bool 10 0是false 非0的都是true print bool 空的字串是false 非空...