整型與字節轉換關系


一、基本概念

:我們常說的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開始的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM