計算機內毫無例外地都使用二進位制數進行運算,但通常採用8進製和十六進製制的形式讀寫。對於計算機技術專業人員,要理解這些數的含義是沒問題,但對非專業人員卻不那麼容易的。由於日常生活中,人們最熟悉的數制是十進位制,因此專門規定了一種二進位制的十進位製碼,稱為bcd碼(binarycoded decimal),它是一種以二進位制表示的十進位制數碼。
8421bcd為最常用的一種bcd碼
表示方法:
以乙個4位二進位制數表示十進位制中乙個一位數,而後用四個四個的組合表示多位十進位制數。
「8421」即:四位二進位制數的權重各為8421。
二進位制編碼的十進位制數,簡稱bcd碼(binarycoded decimal)。這種方法是用4位二進位製碼的組合代表十進位制數的0,1,2,3,4,5,6 ,7,8,9 十個數符。4位二進位制數碼有16種組合,原則上可任選其中的10種作為**,分別代表十進位制中的0,1,2,3,4,5,6,7,8,9 這十個數符。最常用的bcd碼稱為8421bcd碼,8.4
.2.1 分別是4位二進數的位取值。 下圖為十進位制數和8421bcd編碼的對應關係表:
將各位數字乘上其所在位的權重,按權展開相加
十進位制是權是10;二進位制是權是2;十六進製制是權是16;八進位制是權是8;
例: 110011(二進位制數)=1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=32+16+2+1=51
1507(八進位制數)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 839
2af5(十六進製制數)=2*16^3 + a*16^2+ f*16^1 + 5*16^0 = 10997
以二進位制為例:
十進位制數13轉化成二進位制數
13/2=6 餘1
6/2=3 餘0
3/2=1 餘1
1/2=0 餘1
結果:1101
這一操作可以無限進行下去,會得到乙個無限迴圈小數。在實際應用中應要求精度。
0.25 二進位制得0.01
0.25*2=0.5 取0 0.5*2=1取1 所以是0.01
這是為什麼呢,看分數比較容易看出原因
十進位制0.25 從十進位制方式看,也就是 分數2/10 + 分數5/100
先看十進位制
乘10(得2.5)的整數字得2 ,也就是十進位制的小數第一位(這裡你看到的2,其實是十分之二)
除去整數字,再乘10(得5), 就是小數字第二位(這裡你看到的5其實是一百分之五)
十進位制0.25 從二進位制方式看,也就是 分數0/2 + 分數1/4
再看
乘2(得0.5)的整數字得0 , 也就是二進位制的小數第一位(這裡你看到的0,其實是二分之零)
除去整數字,再乘2(得1), 就是小數字第二位(這裡你看到的1其實是四分之一)
再看
0.25,等於 0/2 + 1/4,即得二進位制0.01。
0.75,等於 1/2 + 1/4,即得二進位制0.11。
這種方法其實正如十進位制7,等於4+2+1,即得二進位制111一樣。
其實乘二取整,意義就在於,每次乘2,在整數字看到的都是 2的n次方分之一的分子的值,即二進位制小數點後第n位的值。
(引:從小數點開始,整數部分向左、小數部分向右,每3位為一組不,足3位的要用「0」補足3位。
用一位八進位制數的數字表示就得到乙個八進位制數。
例: 將二進位制的10110.0011 轉換成八進位制:
分組:
010 110 . 001 100
26 . 14
即:(10110.011)2 = (26.14)8
把每乙個八進位制數轉換成3位的二進位制數,就得到乙個二進位制數。
例:將八進位制的37.416轉換成二進位制數:
3 7 . 4 1 6
011 111 .100 001 110
即: (37.416)8 =(11111.10000111)2
二進位制數轉換為十六進製制數的方法也類似,從右到左,四位一組,不夠補0
例: 0101 1011 1011
結果為:5bb
把每乙個十六進製制數轉換成4位*(體現了一致性)*的二進位制數,就得到乙個二進位制數。
例: 將二進位制數1100001.111 轉換成十六進製制:
0110 0001 . 1110
6 1 . e
即: (1100001.111)2 =(61.e)16
bcd碼是什麼意思 BCD碼是什麼
今天給大家穿插講一期常用的數字編碼形式 bcd碼。可能我們在學校經常使用二進位制和十六進製制的數字表達形式。然而大多數情況下我們都是需要和十進位制數進行轉化來進行數字的表達,因為我們社會普遍習慣使用十進位制。相對於一般的浮點式記數法,採用bcd碼,既可儲存數值的精確度,又可免去使計算機作浮點運算時所...
什麼是BCD 碼
bcd碼 binary coded decimal 亦稱二進碼十進數或二 十進位制 用4位二進位制數來表示1位十進位制數中的0 9這10個數碼。是一種二進位制的數字編碼形式,用二進位制編碼的十進位制代 碼。bcd碼這種編碼形式利用了四個位元來儲存乙個十進位制的數碼,使二進位制和十進位制之間的轉換得以...
非壓縮BCD碼轉壓縮BCD碼組合語言
datas segment 此處輸入資料段 buf dw 0302h,0908h,0705h,0102h res db?buf size db?res size db?datas ends stacks segment 此處輸入堆疊段 stacks ends codes segment assume...