一、基本概念
位:我們常說的bit,位就是傳說中提到的計算機中的數據存儲最小數據單位:說白了就是0或者1;計算機內存中的存儲都是01這兩個東西。在計算機中的二進制數系統中,位,簡記為b,也稱為比特,每個0或1就是一個位(bit)。計算機中的CPU位數指的是CPU一次能處理的最大位數。(1和0是計算機儲存二進制的基本單位,包括現在你在電腦上看到的所有一切都是由1和0兩個數組成的,一個即是一個位,8位(bit)一個字節,我們在電腦中看到的圖像視頻等都是計算機通過對儲存器中無數個1和0的計算得來的。)
字節:英文單詞:(byte),byte是存儲空間的基本計量單位。1byte 存1個英文字母,2個byte存一個漢字。規定上是1個字節等於8個比特(1Byte = 8bit)。
字:由若干個字節構成,字的位數叫做字長,不同檔次的機器有不同的字長。例如一台8位機,它的1個字就等於1個字節,字長為8位。如果是一台16位機,那么,它的1個字就由2個字節構成,字長為16位。如果是一台32位機,那么,它的1個字就由4個字節構成,字長為32位,字是計算機進行數據處理和運算的單位。由此可見,計算機的字長決定了其CPU一次操作處理實際位數的多少,即:計算機的字長越大,其性能越好。
ps:
1、二進制數系統中,位簡記為b,也稱為比特,每個二進制數字0或1就是一個位(bit)。位是數據存儲的最小單位,其中8 bit 就稱為一個字節(Byte)。計算機中的CPU位數指的是CPU一次能處理的最大位數。例如32位計算機的CPU一個機器周期內可以處理32位二進制數據的計算。
2、簡單的說32位的CPU的數據線、地址線、控制線都是32位的,即CPU一次能夠傳送、處理32位的二進制數,所以理論上它能夠尋址的范圍是2的32次方,即4個GB,所以即使你的電腦能夠安裝8個GB的內存,系統也只能使用前4個GB的內存,而另4個GB的內存電腦就當沒有。當然由於32位XP的限制,32位的機器也只能使用3個GB多點的內存。同理64位的CPU的數據線等是64位的,即CPU一次能夠並行處理64位的二進制數,所以理論上它能尋址的范圍為2的64次方,比32位的大得多多多,總之是N多個GB。只要系統、主板等支持,你的電腦可以裝很大的內存。(當然電腦能夠使用多大的內存,還要看主板北橋芯片,內存控制器,內存插槽數量等綜合來看。)所以簡單的看64位的系統要比32位的系統在單位時間內能夠處理的數據更多,帶寬更大,處理的速度更快。64位的CPU現在是向下兼容的,64位CPU組成的系統,能夠裝64位的操作系統,也能裝32位的操作系統。當然由於目前大多數人使用的軟件還都是32位的,因此並不能完全發揮出64位CPU的性能。
二、位、字、字節與KB等的轉換關系
1b (bit 位) 1個位能存儲就是0或1
1B(Byte字節)=8bit,
1KB (Kilobyte 千字節)=1024B,
1MB (Mega byte 兆字節 簡稱“兆”)=1024KB,
1GB (Giga byte 吉字節 又稱“千兆”)=1024MB,
1TB (Tera byte 萬億字節 太字節)=1024GB,其中1024=2^10 ( 2 的10次方),
1PB(Peta byte 千萬億字節 拍字節)=1024TB,
1EB(Exa byte 百億億字節 艾字節)=1024PB,
1ZB (Zetta byte 十萬億億字節 澤字節)= 1024 EB,
1YB (Yotta byte 一億億億字節 堯字節)= 1024 ZB,
1BB (Bronto byte 一千億億億字節)= 1024 YB,
1NB(Nona byte )= 1024BB,
1DB(Dogga byte)= 1024NB
三、舉例
例1:
根據GBK編碼來說,兩個字節一個漢字。
1Bit=1/16個字
所以16bit=1個漢字
例2:
1、Int32 //等於int, 占4個字節. 取值范圍:-2147483648 2147483647
2、Int8 //等於byte,
3、Int16 //等於short, 占2個字節. -32768 32767
4、Int64 //等於long, 占8個字節. -9223372036854775808 9223372036854775807
解答:下面我們來計算一下int32
首先int32范圍為-2147483648~2147483647 此處的單位就是位
1個字節占8位 4個字節就是32位 按照2進制取值就是2^31=2147483648
因為int32是無符號類型所以其取值范圍為-231~231-1(-2的31次方到2的31次方-1)
也就是-2147483648 2147483647
如果是無符號類型unit32,則其的取值范圍就是2^32-1(2的32次方-1)=0~4294967295
疑問:很多人好奇為什么要減1呢?因為計算機語言中,是由0開始的。