溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》
  • 首頁 > 
  • 教程 > 
  • 網(wǎng)絡(luò)安全 > 
  • 談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

發(fā)布時(shí)間:2020-06-11 17:31:39 來源:網(wǎng)絡(luò) 閱讀:6452 作者:CaiJiantao 欄目:網(wǎng)絡(luò)安全

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(Hexadecimal)

二進(jìn)制、十進(jìn)制和十六進(jìn)制,這幾個(gè)個(gè)進(jìn)制里算十進(jìn)制我們最熟悉了,從學(xué)前教育或者幼兒園最先接觸的數(shù)學(xué)到再我們?nèi)粘I顜缀跆焯旌退蚪坏赖南旅孢@十個(gè)數(shù)字。

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

    但是,話又說回來,你真的理解這10個(gè)數(shù)字嗎?或者說你理解十進(jìn)制嗎?

    今天我們就以十進(jìn)制為切入點(diǎn)順便談?wù)劧M(jìn)制、十六進(jìn)制以及它們之間的轉(zhuǎn)換。在談這些進(jìn)制之前我們先了解一下進(jìn)制的概念:

    所謂進(jìn)制就是進(jìn)位制,是人們規(guī)定的一種進(jìn)位方法。進(jìn)位制/位置計(jì)數(shù)法是一種記數(shù)方式,故亦稱進(jìn)位記數(shù)法/位值計(jì)數(shù)法,可以用有限的數(shù)字符號代表所有的數(shù)值??墒褂脭?shù)字符號的數(shù)目稱為基數(shù)或底數(shù)(radix),基數(shù)為n,即可稱n進(jìn)位制,簡稱n進(jìn)制。

    對于任何一種進(jìn)位制---n進(jìn)制,就表示某一位置上的數(shù)運(yùn)算時(shí)是逢“n”自右至左進(jìn)一位。 十進(jìn)制是逢“十”進(jìn)一,十六進(jìn)制是逢“十六”進(jìn)一,“二”進(jìn)制就是逢二進(jìn)一,以此類推,n進(jìn)制就是逢n進(jìn)位?,F(xiàn)在最常用的是十進(jìn)制,通常使用10個(gè)阿拉伯?dāng)?shù)字0-9進(jìn)行記數(shù)。

注意:十進(jìn)制是0-9十個(gè)數(shù)值進(jìn)行記數(shù),而不是1-10,其他進(jìn)制也同樣n進(jìn)制就是用0--(n-1)的數(shù)字進(jìn)行記數(shù)而不是0-n。

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

計(jì)數(shù)值:等于把上面的各個(gè)單元格的值乘以單元格實(shí)例的值最后再把所有單元格乘出的值相加。

以上面的實(shí)例的值為例:1X億 + 2X千萬 + 3X百萬 + 4X十萬 + 5X萬 + 6X千 + 7X白 + 8X十 + 9X1=123456789.

    十進(jìn)制非常容易理解,因?yàn)槲覀儚男【徒佑|它,所以對它非常熟悉。假如突然讓你轉(zhuǎn)到二進(jìn)制計(jì)數(shù)法,而且日常生活都用二進(jìn)制計(jì)數(shù)的話,會出現(xiàn)什么情況?答案是你幾乎會瘋掉,因?yàn)槎M(jìn)制一般是讓電腦去理解并使用它的而不是為我們的日常生活中使用它而設(shè)計(jì)的,因?yàn)槎M(jìn)制只有兩個(gè)數(shù)值0和1進(jìn)行計(jì)數(shù),如果一個(gè)龐大的數(shù)字用二進(jìn)制表示的話,那么會是一竄很長的數(shù)字。如11011011這讓你看起來像個(gè)符文,而不能馬上說出它的值,然而電腦卻不然,它更喜歡讀取使用這種“符文”。

    其實(shí)在學(xué)網(wǎng)絡(luò)的時(shí)候特別是接觸IP地址的時(shí)候,你需要真正明白二進(jìn)制以及二進(jìn)制和十進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換,這是很重要的。下面就開始介紹二進(jìn)制,它非常簡單,二進(jìn)制只使用數(shù)字0和1,其中每個(gè)數(shù)值對應(yīng)一位(二進(jìn)制位),二進(jìn)制位按從右向左的順序排列,每向左移動一位,位值就翻一倍。通常我們將每4位或者八位作為一組,分別稱它們?yōu)榘胱止?jié)(nibble)和字節(jié)(Byte)。

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

計(jì)數(shù)值:等于把上面的各個(gè)單元格的值乘以實(shí)單元格實(shí)例的值最后再把所有單元格乘出的值相加。

以上面的實(shí)例的值為例:1X128 + 0X64 + 1X32 + 0X16 + 1X8 + 0X4 + 1X2 + 0X1=

128+0+32+0+8+0+2+0=170

二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換

    上面已經(jīng)介紹了十進(jìn)制和二進(jìn)制,下面就介紹他們之間如何轉(zhuǎn)換。下表列出了半字節(jié)和字節(jié)中各位代表的十進(jìn)制值。

半字節(jié)中各位的位值

字節(jié)中各位的位值

8 4 2 1

128 64 32 16 8 4 2 1


    這意味著,如果某一位的值取值為1,則計(jì)算半字節(jié)或者字節(jié)對應(yīng)的十進(jìn)制值時(shí),應(yīng)將其位值與其所有取值為1的位值相加。如果為0則不考慮。

如果半字節(jié)的每一位都為1,則將8、4、2和1相加,結(jié)果為15—半字節(jié)的最大取值。假設(shè)半字節(jié)的取值為1010,即對應(yīng)位為1的位值為8和2,則對應(yīng)的十進(jìn)制值為8+2=10.

    同理,字節(jié)的轉(zhuǎn)換方法和半字節(jié)一樣,但是字節(jié)的取值要比半字節(jié)的最大取值15大得多,如果字節(jié)的每位都為1,則其取值如下(字節(jié)有8個(gè)位):

    128+64+32=16+8+4+2+1=255。

談?wù)動?jì)算機(jī)和網(wǎng)絡(luò)常用進(jìn)位制:二進(jìn)制(Binary)、十進(jìn)制(Decimal)和十六進(jìn)制(He

十進(jìn)制到二進(jìn)制的轉(zhuǎn)換就是上面方法的相反過程,方法如下:

1. 先取和該十進(jìn)制值最接近的并且小于該十進(jìn)制大小的一個(gè)二進(jìn)制位值。

2. 用十進(jìn)制值減去剛剛的接近值,得出的差。

3. 按照第一、二步接著取第二個(gè),第三個(gè)以此類推。

4. 得到差為0.

5. 把所有位值并所得的結(jié)果進(jìn)行“或”運(yùn)算,運(yùn)算的結(jié)果就是對應(yīng)的二進(jìn)制值。

下面用一個(gè)實(shí)例來說明:

如十進(jìn)制234轉(zhuǎn)換為二進(jìn)制。

和234最接近大小的二進(jìn)制位值為224(11100000)

234-224=10

和10最接近的二進(jìn)制位值為8(00001000)

10-8=2(00000010)

對上面的二進(jìn)制進(jìn)行與運(yùn)算:

11100000

00001000

00000100


11101100

十六進(jìn)制和二進(jìn)制、十進(jìn)制之間的轉(zhuǎn)換

十六進(jìn)制與二進(jìn)制和十進(jìn)制完全不同,我們通過讀取半字節(jié)將二進(jìn)制轉(zhuǎn)換為十六進(jìn)制。為什么呢?因?yàn)橐粋€(gè)半字節(jié)剛好滿足一個(gè)十六進(jìn)制的最大值15。即半字節(jié)的所有位都取1。

1111,十進(jìn)制值為8+4+2+1=15。十進(jìn)制使用0—9十個(gè)數(shù)字而十六進(jìn)制除了使用十進(jìn)制的十個(gè)數(shù)字外另外6個(gè)用啥代替呢?10、11、12、13、14、15嗎?那可不行,因?yàn)?0—15這6個(gè)數(shù)字不是二位數(shù),因此我們使用A、B、C、D、E、F來代表10、11、12、13、14、15。

每個(gè)十六進(jìn)制字符相當(dāng)于半字節(jié),而兩個(gè)十六進(jìn)制字符就相當(dāng)于一字節(jié)。要計(jì)算該十六進(jìn)制數(shù)對應(yīng)的二進(jìn)制值,即可將這兩個(gè)十六進(jìn)制字符分別轉(zhuǎn)為二進(jìn)制的半字節(jié),然后將他們合并為一個(gè)字節(jié)即可。下面用幾個(gè)實(shí)例介紹一下十六進(jìn)制和二進(jìn)制、十進(jìn)制之間的轉(zhuǎn)換方法:

實(shí)例1、十六進(jìn)制0x7B(一般以0x前綴代表后面的數(shù)十十六進(jìn)制)轉(zhuǎn)為二進(jìn)制和十進(jìn)制。

轉(zhuǎn)為二進(jìn)制:

上面講過,十六進(jìn)制的每個(gè)字符 為半個(gè)字節(jié),我們分別來拆開來看:7=0111而B=1011,因此整個(gè)字節(jié)為01111011。

轉(zhuǎn)為十進(jìn)制:

7 X (16)1 + B X (16)0 = 112 + 11 = 123。

實(shí)例2、二進(jìn)制10110101轉(zhuǎn)換為十六進(jìn)制和十進(jìn)制。

轉(zhuǎn)為十六進(jìn)制:

先把10110101字節(jié)拆為兩個(gè)字節(jié):1011和0101。1011對應(yīng)的十六進(jìn)制字符為B(8+0+2+1),0101對應(yīng)的十六進(jìn)制字符為5(0+4+0+1),所以十六進(jìn)制的值為0xB5。

轉(zhuǎn)換為十進(jìn)制:

128 + 32 + 16 + 4 + 1 = 181

    其實(shí)對于任何一個(gè)數(shù),我們可以用不同的進(jìn)位制來表示。比如:十進(jìn)數(shù)57(10),可以用二進(jìn)制表示為00111001(2),也可以用五進(jìn)制表示為212(5),也可以用八進(jìn)制表示為71(8)用十六進(jìn)制表示為39(16),它們所代表的數(shù)值都是一樣的,只是我們?nèi)粘I钪辛?xí)慣于用十進(jìn)制來表示而計(jì)算機(jī)常用二進(jìn)制和十六進(jìn)制來表示而已!

好了,本篇文章就到此結(jié)束,希望給剛接觸計(jì)算機(jī)或者網(wǎng)絡(luò)領(lǐng)域的朋友能有個(gè)好的開始!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI