int long 等基礎型別在不同平台的大小

2021-09-06 11:40:10 字數 2637 閱讀 8031

**

事過n天,鼓起勇氣來好好查了一下,發現學問還是蠻大的。

int型別比較特殊,具體的位元組數同機器字長和編譯器有關。如果要保證移植性,盡量用__int16 __int32 __int64吧,或者自己typedef int int32一下。

c、c++標準中只規定了某種型別的最小位元組數(防止溢位)

64位指的是cpu通用暫存器的資料寬度是64位的。找到乙個圖

資料型別名稱位元組數別名取值範圍

int*

signed,signed int

由作業系統決定,即與作業系統的"字長"有關

unsigned int*

unsigned

由作業系統決定,即與作業系統的"字長"有關

__int81

char,signed char

–128 到 127

__int162

short,short int,signed short int

–32,768 到 32,767

__int324

signed,signed int

–2,147,483,648 到 2,147,483,647

__int648

無–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

bool1

無false 或 true

char1

signed char

–128 到 127

unsigned char1

無0 到 255

short2

short int,signed short int

–32,768 到 32,767

unsigned short2

unsigned short int

0 到 65,535

long4

long int,signed long int

–2,147,483,648 到 2,147,483,647

long long8

none (but equivalent to __int64)

–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned long4

unsigned long int

0 到 4,294,967,295

enum*

無由作業系統決定,即與作業系統的"字長"有關

float4

無3.4e +/- 38 (7 digits)

double8

無1.7e +/- 308 (15 digits)

long double8

無1.7e +/- 308 (15 digits)

wchar_t2

__wchar_t

0 到 65,535

型別識別符號

型別說明

長度(位元組)

範圍備註

char字元型

1-128 ~ 127

-27 ~ (27 -1)

unsigned char無符字元型

10 ~ 255

0 ~ (28 -1)

short int短整型

2-32768 ~ 32767

2-15 ~ (215 - 1)

unsigned short int無符短整型

20 ~ 65535

0 ~ (216 - 1)

int整型

4-2147483648 ~ 2147483647

-231 ~ (231 - 1)

unsigned int無符整型

40 ~ 4294967295

0 ~ (232-1)

float實型(單精度)

41.18*10-38 ~ 3.40*1038

7位有效位

double實型(雙精度)

82.23*10-308 ~ 1.79*10308

15位有效位

long double實型(長雙精度)

103.37*10-4932 ~ 1.18*104932

19位有效位

HttpServlet在不同型別時獲取引數方式

獲取引數的方式 1 request.getparameter 2 request.getinputstream 3 request.getreader 預設編碼方式 時 編碼後的結果通常是field1 value2 field2 value2 的形式,如 name aaaa password bbb...

選擇不同的管理型別,本質都是在選擇不同性格的人

微軟 msf 培訓書籍中提到乙個 白菜蘿蔔 的故事,說的是對做好本職工作的理解,體現了人的性格對 工作的影響,同時作為專案管理人員,對不同性格的偏愛,也決定了整個團隊的工作風格。故事說的是乙個軟體開發的專案組,有兩個都很優秀的員工,乙個叫 蘿蔔 乙個叫 白菜 蘿蔔做事 快,是我們常說的 麻利 那種人...

int,float等基礎型別終於可以賦為null了

好象有物件導向程式設計語言以來,對於基礎型別資料,如int float等,不支援為其賦值為null,我們為了將其表示為null,通常是賦予乙個特定的值,如int則賦值為 1。現在在c 2.0中有乙個很好的解決方法 就是使用基礎型別 比如int?float?ms help 如果 運算子的左運算元非空,...