算術型別

狹窄的角色型別

unsigned char 型別使用所有位來表示二進位制數。因此,例如,如果 unsigned char 是 8 位長,則 char 物件的 256 個可能位模式表示 256 個不同的值{0,1,…,255}。保證數字 42 由位模式 00101010 表示。

signed char 型別沒有填充位元,*即,*如果 signed char 是 8 位元長,則它具有 8 位元的容量來表示數字。

請注意,這些保證不適用於窄字元型別以外的型別。

整數型別

無符號整數型別使用純二進位制系統,但可能包含填充位。例如,unsigned int 有可能(儘管不太可能)為 64 位長,但只能儲存 0 到 2 32 - 1 之間的整數。其他 32 位是填充位,不應直接寫入。

有符號整數型別使用帶符號位和可能填充位的二進位制系統。屬於有符號整數型別的公共範圍的值和對應的無符號整數型別具有相同的表示。例如,如果 unsigned short 物件的位模式 0001010010101011 表示值 5291,則它還表示當被解釋為 short 物件時的值 5291

它是實現定義的,是否使用了二進位制補碼,一個補碼或符號幅度表示,因為所有三個系統都滿足前一段中的要求。

浮點型別

浮點型別的值表示是實現定義的。最常見的是,floatdouble 型別符合 IEEE 754 並且長度為 32 和 64 位(因此,例如,float 將具有 23 位精度,其將遵循 8 個指數位和 1 個符號位)。但是,該標準不保證任何內容。浮點型別通常具有陷阱表示,這會在計算中使用時導致錯誤。