1.二進制碼
隻使用“0”和“1”兩個基本符号,在數值數據中選用“逢二進一”的進位規則,這是二進制碼的基本特點。計算機内部普遍使用二進制碼來表示各種數據,這是因為:
① 很容易找到表示和區分二進制碼的“0”和“1”兩個符号的物理器件;
② “0”和“1”兩個符号可以很好地對應邏輯型數據的“假”和“真”兩個值;
③ 用二進制碼表示的數值型數據的運算規則最簡單。
各種不同類型的數據,包括數值、邏輯值、文本、圖像、聲音和視頻等多種信息,在計算機系統内部都必須采用二進制代碼的“0”和“1”來表示。對于數值類型的數據,在日常生活中通常使用帶正、負号的十進制數來表示,如123.456、-789等,這選用的二進制數或采用二進制編碼的就勢必遇到和計算機内部十進制數(Binary Coded Decimal Number,簡稱BCD碼)之間的數制轉換問題。
2.數制與進位計數法
在采用進位計數的數字系統中,如果隻用r個基本符号 (例如0,1,2,…r-1) 、通過排列起來的符号串表示數值,則稱其為基r數制(Radix-r Number System), r稱為數制的基數(Radix)。假定用m k個自左向右排列的符号Di(i是位序号,-k≤i≤m-1;Di表示符号串中第i位上的記數符号,屬于0到r-1中的一個)表示數值N,則有:
N = Dm-1 Dm-2 … D1 D0 D-1 D-2 …D-k (2.1)
式中的Di(-k≤i≤m-1)為該數制采用的基本符号,可取值0、1、2、…、r-1,小數點位置隐含在 D0與D-1位之間,則Dm-1 … D0 為N的整數部分,D-1 … D-k 為N的小數部分。
如果為第i位上的符号1賦以某個固定的值Wi ,則稱Wi 為第i位的權 (Weight) ,在選用“逢r進位”的規則時,位權Wi的值為ri(一個底為基數、幂是位序号的指數值),則稱這種數制為r進位數制 (Positional Radix-r Number System),簡稱r進制。第i位的實際值可寫成Di×ri,N的實際值為各數據位實際值的累加和,可表示為:
m-1
例如,表示十進制數要使用10個基本符号:0,1,2,3,4,5,6,7,8,9,采用逢10進1規則,例如103.4 = 1×102 0×101 3×100 4×10-1。
在計算機中通常還會用到二、八、十六3種進位數制。
在二進制中,計數符号:0,1,基數是2,逢二進一。
在八進制中,計數符号:0,1,…,7,基數是8,逢八進一。
在十六進制中,計數符号:0,1,…,9,A,B,…,F,基數是16,逢十六進一。分别用A-F分别表示十進制數10,11,12,13,14,15。
十進制二進制轉換方法1.十→二進制數的轉換
十→二進制數的轉換要分為整數與小數兩種情況分别轉換。
(1)整數的轉換:采用除2取餘,高位在下,直到商為0時為止的原則。
(2)小數的轉換:采用乘2取整,高位在上的原則,位數達到要求或小數部分為0結束。
例如,把十進制小數0.375轉換為二進制數,如下所示:
0.375×2=0.75 整數部分為0高位
0.75×2=1.5 整數部分為1
0.5×2=1.0 整數部分為1低位
所以,0.375=(0.011)2
(十進制轉化二進制)
2.二-十進制數的轉換
二-十進制數的轉換:通常采用公式(2.2)對二進制數各位的實際值累加求和完成。
例如:(10110)2= 1×24 0×23 1×22 1×21 0×20 =22
(1101.1)2=1×23 1×22 0×21 1×20 1×2-1=13.5
(二進制轉化十進制)
3.八→二進制數的轉換
因為23=8,故1個八進制位對應3個二進制位,可以把一個八進制數的整數部分和小數部分的每一位分别轉換成3位二進制數。
例如: (103.4)8=(001010011.100)2
(741)8=(111100001)2
4.二→八進制數的轉換
因為23=8,故3個二進制位對應1個八進制位,可以從小數點位置分别向左和向右把每3位二進制數劃分為一組,并轉換成1位八進制數。注意:小數部分分組時若低位不足3位時要用0補足,否則會出錯。
例如: (10110110.1)2=(266.4)8,而不是 (266.1) 8
(二進制轉化八進制)
5.十六→二進制數的轉換
因為24=16,故1個十六進制位對應4個二進制位,可以把一個十六進制數的整數部分和小數部分的每一位分别轉換成4位二進制數。
例如: (123)16=(0001,0010,0011)2
(D2C8)16=(1101,0010,1100,1000)2
6.二→十六進制數的轉換
因為24=16,故4個二進制位對應1個十六進制位,可以從小數點位置分别向左和向右把每4位二進制數劃分為一組,并轉換成1位十六進制數。注意:小數部分分組是若低位不足4位要用0補足,否則會出錯。
例如: (10110110.11)2=(1011, 0110)16=(B6.C)16,而不是 (266.3) 16
(100110111)2=(1, 0011, 0111)8=(137)16
(二進制轉化十六進制)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!