1.位元,又叫做位,bit,就是乙個二進位制0或者1,作為最小的儲存單位
2.位元組,byte,一般是由8個連續的位元組組成,每個位元組都和乙個數字繫結作為它的位址。我們平時使用的1kb,這個b表示的就是byte而不是bit,即1kb=1024byte=8192bit。
3.我們存入的資料在位元組中的都是0或者1的二進位制,然後我們將多個連續的二進位制轉為十進位制,最多也只能表示數字,並且乙個位元組能表示的十進位制數字最大範圍就是0~255。
4.所以如果要表達更大的數字我們就需要連線多個位元組一起轉化為十進位制來表示,這裡就有乙個問題:那我們到底是使用幾個位元組來表示乙個數字呢?因為使用不同的位元組數轉化出來的十進位制肯定是不同的。
5.所以就需要型別這個概念,每種不同的型別都規定了占用的位元組數,比如我們已知有乙個int型別的資料,int型別占用的位元組數是4,它的起始位址是77584。然後我們就將77584位址的位元組以及後面三個位址的位元組連線起來一共是乙個32bit的二進位制串,將其轉化位十進位制就得到了這個資料的值了。
6.在實際的應用中,我們還需要除了數字之外的其他字元,比如英文,中文等,這時候就需要用到編碼了,一種編碼就規定了將特定的數字轉化為字元的對應關係,我們首先根據上面的方式拿到資料的數字值,再根據編碼找到對應的字元,這樣我們就可以將乙個個字元存入到計算機了。
7.生活中我們經常說到某個計算機是32位,某個計算機是64位的。這裡的32位和64位指的是該計算機cpu讀取一次資料的最大長度。32位就是32bit,64位就是64bit。如果cpu讀取的這個資料表示的是乙個位元組的位址的話,那麼32位的計算機能讀取到的最大位址就是2的32次方,而乙個位址是乙個byte,也就是說最多能找到2的32次方個byte這就相當於4g,多以限制了32位計算機的記憶體最大就只能是4g,在現在4g記憶體顯然不夠用,所以需要64位的計算機。
32位 64位 各型別位元組數
32位編譯器 char 1個位元組 char 即指標變數 4個位元組 32位的定址空間是2 32,即32個bit,也就是4個位元組。同理64位編譯器 short int 2個位元組 int 4個位元組 unsigned int 4個位元組 float 4個位元組 double 8個位元組 long ...
32位和64位常用資料型別所佔位元組數
32位編譯器 char 1個位元組 指標變數 4個位元組 short int 2個位元組 int 4個位元組 unsigned int 4個位元組 float 4個位元組 double 8個位元組 long 4個位元組 long long 8個位元組 unsigned long 4個位元組 64位編...
32位64位下資料型別
c語言中基本資料型別的長度 32位下 char 1個位元組 不變 指標變數 4個位元組 32位機的定址空間是4個位元組。同理64位編譯器 變化 short int 2個位元組 不變 int 4個位元組 不變 unsigned int 4個位元組 不變 float 4個位元組 不變 double 8個...