int 佔乙個機器字長

2022-07-30 01:24:09 字數 1501 閱讀 7850

int與short int是不一樣的。 

c++標準規定,int佔乙個機器字長。在32位系統中int佔32位,也就是4個位元組,

而在老式的16位系統中,int佔16位,即2個位元組。

而c++標準中只限制規定short int不能超過int的長度,具體長度的可以由c++編譯器的實現廠商自行決定。目前流行的32位c++編譯器中,

通常int佔4位元組,short int佔2位元組。其中short int可以簡寫為short。類似地,c++標準只限制了long int不得小於int的長度,具體也沒有作出限制。

應該和cpu構架和編譯系統有關吧。呵呵。

這個問題我也很模糊!!!

我的32位機器vc++結果是

短整形short int = 16 位 = 2 位元組

整形int = 32 位 = 4 位元組

長整形long int = 32 位 = 4 位元組

單精度float = 32 位 = 4 位元組

雙精度double = 64 位 = 8 位元組

長整形雙精度long double = 64 位 = 8 位元組

字元型char = 8 位 = 1 位元組

無符號字元型unsigned char = 8 位 = 1 位元組

有符號字元型signed char = 8 位 = 1 位元組

無符號整形unsigned int = 32 位 = 4 位元組

有符號整形signed int = 32 位 = 4 位元組

無符號長整形signed long int = 32 位 = 4 位元組

在tc2.0中

short int = 16 bit = 2 byte

int = 16 bit = 2 byte

long int = 32 bit = 4 byte

float = 32 bit = 4 byte

double = 64 bit = 8 byte

long double = 80 bit = 10 byte

char = 8 bit = 1 byte

unsigned char = 8 bit = 1 byte

signed char = 8 bit = 1 byte

unsigned int = 16 bit = 2 byte

signed int = 16 bit = 2 byte

signed long int = 32 bit = 4 byte

tc的

long double = 80 bit = 10 byte

vc++的

long double = 64 位 = 8 位元組

差了2個位元組

我總結應該是和編譯系統有關,編譯系統根據機器定義。

還要遵循short int <= int <= long int 吧

乙個漢字佔多少位元組

1 gbk編碼,乙個漢字佔2個位元組。2 utf 16編碼,通常漢字佔2個位元組,cjkv擴充套件b區 擴充套件c區 擴充套件d區中的漢字佔4個位元組 一般字元的unicode範圍是u 0000至u ffff,而這些擴充套件部分的範圍大於u 20000,因而要用兩個utf 16 3 utf 8編碼是...

int為什麼佔4個位元組?乙個位元組為什麼是8位?

不知道大家有沒有思考過這樣的問題,乙個位元組為什麼是8位呀,也許還有小夥伴不知道我說的這些是什麼,沒關係往下看。第乙個解釋 歷史 是ibm為system 360設計了一套8位ebcdic編碼,涵蓋了數字 大小寫字母和大部分常用符號,同時又相容廣泛用於打孔卡的6位bcdic編碼。第二個解釋,二進位制我...

用乙個 int 表示 IP位址

用乙個 int 表示 ip位址。這還是08年初,面試華為時被問到的,當時也回答上來了。不過,最終 hr 也沒要我就是了 public class ip2integer else system.out.println iipv4 sb.tostring return sb.tostring conve...