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++結果是
在tc2.0中短整形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 位元組
short int = 16 bit = 2 bytetc的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
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...