计算机中的数制
文章目錄
- 一、計算機中的各種數(shù)制
- 1. 十進制
- 2. 二進制
- 3. 十六進制
- 二、不同數(shù)制間數(shù)的轉(zhuǎn)換
- 1. 二進制和十進制數(shù)間的轉(zhuǎn)換
- (1)十進制整數(shù)轉(zhuǎn)換成二進制整數(shù)
- (2)十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)
- 2. 十六進制和十進制數(shù)間的轉(zhuǎn)換
- (1)十六進制數(shù)轉(zhuǎn)成十進制數(shù)
- (2)十進制數(shù)轉(zhuǎn)成十六進制數(shù)
- 1)十進制整數(shù)轉(zhuǎn)成十六進制整數(shù)
- 2)十進制小數(shù)轉(zhuǎn)成十六進制小數(shù)
- 3. 二進制和十六進制數(shù)間的轉(zhuǎn)換
- (1)二進制數(shù)轉(zhuǎn)成十六進制數(shù)
- (2)十六進制數(shù)轉(zhuǎn)成二進制數(shù)
- 三、二進制數(shù)的計算
- 1. 算術(shù)運算
- (1)加法運算
- (2)減法運算
- (3)乘法運算
- (4)除法運算
- 2. 邏輯運算
- (1)邏輯乘運算
- (2)邏輯加運算
- (3)邏輯非運算
- (4)邏輯異或
數(shù)制是指數(shù)的制式,是人們利用符號計數(shù)的一種科學方法。
一、計算機中的各種數(shù)制
在計算機中常用的數(shù)制有十進制、二進制、八進制和十六進制等。
1. 十進制
十進制是我們經(jīng)常用到的進位數(shù)制,它包括:0、1、2、3、4、5、6、7、8、9共十個數(shù)字符號。這十個數(shù)字符號又稱為“數(shù)碼”,每個數(shù)碼在數(shù)中最多可有兩個值的概念,一個是數(shù)字符號的數(shù)值,另一個是該數(shù)字符號的權(quán)。
舉個例子,例如:十進制數(shù)34中的數(shù)碼3,其本身的值為3,它的權(quán)為10^1,所以它實際代表的值是30。在數(shù)學上,數(shù)制中數(shù)碼的個數(shù)定義為基數(shù),故十進制的基數(shù)為10。
任何一個十進制數(shù)都可以展開成冪級數(shù)形式,例如:
423.76 = 4*10^2 + 2*10^1 + 3*10^0 + 7*10^-1 + 6*10^-22. 二進制
二進制總共有0和1兩個數(shù)碼,任何二進制數(shù)都由這兩個數(shù)碼組成。
二進制數(shù)的基數(shù)為2,做加法時,遵循逢2進1的進位原則。
二進制展開成冪級數(shù)形式,如下所示:
10110.11 = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2其中,指數(shù)2^4、2^3、2^2、2^1、2^0、2^-1、2^-2為權(quán),2為基數(shù),其余和十進制時相同。
3. 十六進制
十六進制有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16個數(shù)碼,任何一個十六進制數(shù)都是由其中的一些或全部數(shù)碼構(gòu)成。
十六進制數(shù)的基數(shù)為16,進位計數(shù)為逢16進1。
十六進制展開成冪級數(shù)形式,例如:
63F.B1H = 6*16^2 + 3*16^1 + F*16^0 + B*16^-1 + 1^16^-2為了區(qū)分不同的數(shù)制,通常在被標記數(shù)后,加上B、D、H大寫字母用來表示二進制、十進制和十六進制。其中十進制的D可以省略。
二、不同數(shù)制間數(shù)的轉(zhuǎn)換
1. 二進制和十進制數(shù)間的轉(zhuǎn)換
二進制數(shù)轉(zhuǎn)換成十進制數(shù)只要把要轉(zhuǎn)換數(shù)按權(quán)展開后相加即可。例如:
10110.11B = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2 = 22.75十進制數(shù)轉(zhuǎn)換成二進制數(shù)的轉(zhuǎn)換過程是上述轉(zhuǎn)換過程的逆過程,但是十進制整數(shù)和小數(shù)轉(zhuǎn)換成二進制整數(shù)和小數(shù)的方法是不同的。
(1)十進制整數(shù)轉(zhuǎn)換成二進制整數(shù)
常用的方法是除2取余法,首先用2除要轉(zhuǎn)換的十進制數(shù),得到一個商和一個余數(shù),然后繼續(xù)用2除上次得到的商,直到商為0為止,最后把各次余數(shù)按最后得到的為最高位,最早得到的為最低為,依次排列起來便得到所求的二進制數(shù)。
舉例說明:求出231所對應(yīng)的二進制數(shù),其豎式為:
按照上圖箭頭方向?qū)⒂鄶?shù)排列可得:231 = 11100111B
(2)十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)
十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)通常采用乘2取整法,首先用2去乘要轉(zhuǎn)換的十進制小數(shù),將乘積結(jié)果的整數(shù)部分提出來,然后繼續(xù)用2去乘上次乘積的小數(shù)部分,直到所得積的小數(shù)部分為0或滿足所需精度為止,最后把各次整數(shù)按最先得到的為最高位、最后得到的為最低位,依次排列起來便得到所求的二進制小數(shù)。
舉例說明:把十進制小數(shù)0.6879轉(zhuǎn)換為二進制小數(shù),其解法為:
按照上圖箭頭方向?qū)⒄麛?shù)排列可得:0.6879 ≈ 0.1011B
需要注意的是:任何十進制整數(shù)都可以精確地轉(zhuǎn)換成一個二進制整數(shù),但任何十進制小數(shù)卻不一定可以精確地轉(zhuǎn)換成一個二進制小數(shù)。
2. 十六進制和十進制數(shù)間的轉(zhuǎn)換
(1)十六進制數(shù)轉(zhuǎn)成十進制數(shù)
十六進制數(shù)轉(zhuǎn)換成十進制數(shù)的方法和二進制數(shù)轉(zhuǎn)換成十進制數(shù)的方法類似,即把十六進制數(shù)按權(quán)展開后相加,例如:
3FEAH = 3*16^3 + 15*16^2 + 14*16^1 + 10*16^0 = 16362(2)十進制數(shù)轉(zhuǎn)成十六進制數(shù)
1)十進制整數(shù)轉(zhuǎn)成十六進制整數(shù)
十進制整數(shù)轉(zhuǎn)換成十六進制整數(shù),采用的是除16取余法。和十進制轉(zhuǎn)成二進制的方法類似,用16連續(xù)去除要轉(zhuǎn)換的十進制整數(shù),直到商數(shù)小于16為止,然后把各次余數(shù)按逆序排列起來所得的數(shù),便是所求的十六進制數(shù)。
舉例說明:把十進制數(shù)3901轉(zhuǎn)換成十六進制數(shù),其解法為:
因此,3901 = F3DH
2)十進制小數(shù)轉(zhuǎn)成十六進制小數(shù)
十進制小數(shù)轉(zhuǎn)換成十六進制小數(shù)的方法是乘16取整法,即把欲轉(zhuǎn)換成十六進制小數(shù)的十進制小數(shù)連續(xù)乘以16,直到所得乘積的小數(shù)部分為0或達到所需精度為止,最后把各次整數(shù)按最先得到的為最高位,最后得到的為最低位,依次排列起來便得到所求的十六進制小數(shù)。
舉例說明:求0.76171875所對應(yīng)的十六進制數(shù),其解法為:
因此,0.76171875 = 0.C3H
3. 二進制和十六進制數(shù)間的轉(zhuǎn)換
二進制和十六進制間的轉(zhuǎn)換十分方便,這就是為什么人們要采用十六進制對二進制加以表達的原因了。
(1)二進制數(shù)轉(zhuǎn)成十六進制數(shù)
二進制數(shù)轉(zhuǎn)成十六進制數(shù)采用四位合一位法,即從二進制的小數(shù)點開始,或左或右每四位一組,不足四位以零補位,然后分別把每組用十六進制數(shù)碼表示,并按序相連。
舉例說明:將1101111100011.10010100B轉(zhuǎn)成十六進制數(shù),其解法為:
因此,1101111100011.10010100B = 1BE3.94H
(2)十六進制數(shù)轉(zhuǎn)成二進制數(shù)
轉(zhuǎn)換方法是把十六進制數(shù)的每位分別用四位二進制數(shù)碼表示,然后把它們連成一體。
舉例說明,把十六進制數(shù)3AB.7A5轉(zhuǎn)成二進制數(shù),其解法為:
因此,3AB.7A5H = 1110101011.011110100101B
三、二進制數(shù)的計算
在計算機中,運算分為算術(shù)運算與邏輯運算兩類。算術(shù)運算包括:加、減、乘、除運算;邏輯運算包括:邏輯乘、邏輯加、邏輯非、邏輯異或等。
1. 算術(shù)運算
(1)加法運算
二進制的加法法則是:
0 + 0 = 0 1 + 0 = 0 + 1 = 1 1 + 1 = 0(向鄰近高位進位) 1 + 1 + 1 = 1(向鄰近高位進位)(2)減法運算
二進制的減法法則是:
0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1(向鄰近高位借1當作2)兩個二進制數(shù)相減時,要先判斷它們的大小,把大數(shù)作為被減數(shù),小數(shù)作為減數(shù),差的符號由兩數(shù)關(guān)系決定。
在減法過程中要注意低位向高位借的1應(yīng)當作2。
(3)乘法運算
二進制乘法法則是:
0 * 0 = 0 1 * 0 = 0 * 1 = 0 1 * 1 = 1兩個二進制數(shù)相乘與兩個十進制數(shù)相乘類似,可以用乘數(shù)的每一位分別去乘以被乘數(shù),所得結(jié)果的最低位與相應(yīng)乘數(shù)位對齊,最后把所有結(jié)果加起來,便得到積。
舉例說明:兩個四位的二進制數(shù)1101B和1001B相乘,其解法為:
被乘數(shù) 1101B 乘數(shù) X 1001B ------------------------------1101000000001101 ------------------------------ 乘積 1110101B在計算機中,普遍采用部分積左移和部分積右移的方法。前者從乘法最低位向高位逐位進行,后者從乘法最高位向低位進行,其本質(zhì)異曲同工。
部分積右移法采用邊相乘邊相加的方法,每次加被乘數(shù)或0時總要先使部分積右移,而被乘數(shù)的位置可保持不變。
(4)除法運算
除法是乘法的逆運算,二進制除法也是從被除數(shù)的最高位開始,查找出夠減除數(shù)的位數(shù),并在其最低位處上商1和完成它對除數(shù)的減法運算,然后把被除數(shù)的下一位移到余數(shù)位置上;若余數(shù)不夠減除數(shù),則上商0,并把被除數(shù)的再下一位移到余數(shù)位置上;若余數(shù)夠減除數(shù),則上商1并進行余數(shù)減除數(shù)。這樣重復進行,直到全部被除數(shù)的各位都下移到余數(shù)位置上為止。
2. 邏輯運算
邏輯運算由專門的邏輯電路完成。
(1)邏輯乘運算
邏輯乘又稱邏輯與,常用?符號表示。邏輯乘運算法則為:
0 ? 0 = 0 1 ? 0 = 0 ? 1 = 0 1 ? 1 = 1(2)邏輯加運算
邏輯加又稱邏輯或,常用算符v表示。邏輯加的運算規(guī)則為:
0 v 0 = 0 1 v 0 = 0 v 1 = 1 1 v 1 = 1(3)邏輯非運算
邏輯非運算又稱邏輯取反,常采用-運算符表示。運算規(guī)則為:
非0 = 1 非1 = 0(4)邏輯異或
邏輯異或又稱為半加,是不考慮進位的加法,常采用⊕算符表示。邏輯異或的運算規(guī)則為:
0 ⊕ 0 = 1 ⊕ 1 = 0 1 ⊕ 0 = 0 ⊕ 1 = 1異或運算可用于把某數(shù)的若干位取反。異或運算還可用于乘除法運算中的符號位處理。
總結(jié)
- 上一篇: js仿饿了吗?谁去拿外卖小游戏(锻炼布局
- 下一篇: 禁用windows10更新_如何在Win