美丽的网站-英华家电维修论坛
标题:
bcd码编码方式
[打印本页]
作者:
万家正
时间:
2011-8-24 21:38
标题:
bcd码编码方式
bcd码编码方式
作者:
万家正
时间:
2011-8-24 21:41
BCD码BCD码(Binary Coded Decimal),即二-十进制编码,是用四位二进制码的 10 种组合表示十进制数0-9。这种编码至少需要用四位二进制码元,而四位二进制码元可以有16种组合。当用这些组合表示十进制数0-9时,有六种组合不用。
/ w3 _4 j& v4 i3 d' w9 Q6 {' [7 S
# R" l) v# I8 a
目录
, d+ I8 M0 v% R4 M
BCD码种类BCD码的格式BCD码的运算法则
. t: R5 P) k, N0 ^3 S
BCD码种类
1 ~9 B3 p1 T4 w2 o2 n
BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码、格雷码等。
: w f: S% l5 p f" n6 A: [; e4 v
# y- W3 O- T& x& `0 x1 P8 I+ V
3 [: g" w7 b8 R
1. 8421 BCD码
A; ~$ Q' F5 ~" J8 Y
+ U. j4 [. n6 A( T( r
8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。
, s9 O& }* t8 b* o ?
8 y/ v) y( a8 n( d; s# V
2. 5421 BCD码和2421 BCD码
( b: O+ P1 a% K2 x
' P8 l1 j3 y8 y; L4 C( ?) \/ U
5421 BCD码和2421 BCD码为有权BCD码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。这两种有权BCD码中,有的十进制数码存在两种加权方法,例如,5421 BCD码中的数码5,既可以用1000表示,也可以用0101表示;2421 BCD码中的数码6,既可以用1100表示, 也可以用0110表示。这说明5421 BCD码和2421 BCD码的编码方案都不是惟一的,表1-2只列出了一种编码方案。
- B" s4 h" U8 J9 R: P) ^
8 k( w9 \4 j+ H: P: E
上表中2421 BCD码的10个数码中,0和9、1和8、2和7、3和6、4和5的代码对应位恰好一个是0时,另一个就是1。就称0和9、1和8互为反码。
0 n1 L7 J, B+ E: S
8 E" t0 R, M: N
3. 余3 码
- q! @ n3 z+ g* k1 L
" a: x3 l1 V2 s1 |/ ?
余3码是8421 BCD码的每个码组加3(0011)形成的。常用于BCD码的运算电路中。
( I7 j! ^ P Q) W
% e8 E. }! j) r2 R: _
4. Gray码(格雷码)
7 b0 h+ t6 z! [9 X9 n( }' z) a
: P6 U& v, }6 |# f9 W
Gray码也称循环码,其最基本的特性是任何相邻的两组代码中,仅有一位数码不同,因而又叫单位间隔码。
4 E! n! U: z! i5 m1 I
" G3 a( H% p! ]; X+ H# w* B$ ?
Gray码的编码方案有多种,典型的Gray码如下表所示。从表中看出,这种代码除了具有单位间隔码的特点外,还有一个特点就是具有反射特性,即按表中所示的对称轴为界,除最高位互补反射外,其余低位数沿对称轴镜像对称。利用这一反射特性可以方便地构成位数不同的Gray码。
( m+ _& ~7 W& }; B4 e
% F8 o, s8 D/ s6 O- c8 C0 b' k
6 R. [, [3 v0 o1 T" h3 W/ `
BCD码的格式
/ ]/ w2 h* B/ Y3 ]: R' |! g) s: _
计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。
2 n5 r7 C% w$ S! `
% x% F, ?% O3 I3 c
所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:
/ M1 W; A' C3 p6 L- g$ X
* |2 p* j! G3 H4 Q) h$ i, t
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。
: @# T- @! x/ ^
2 J' z; h# U* K5 j4 [
组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010
) g, D `+ D8 e8 K
+ n$ M3 j* I# ]2 h
BCD码的运算法则
/ S! a; g; O/ @5 W
由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。
# k( q _. i9 I8 m* m; L
' B2 }9 P$ F0 |
解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:
) q9 A% w o3 @0 [
( @/ n. H% N7 r# A
(1)假如任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或即是9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
b5 V1 Z6 y/ ]0 m7 n3 r
1 W+ }" y# S O8 h
(2)假如任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或即是16),该位进行加6修正.
& X; u4 L8 ]7 i5 a
1 T8 A" d( I0 V/ O
(3)低位修正结果使高位大于9时,高位进行加6修正。
Z( x, V8 l0 I! {/ v! s
欢迎光临 美丽的网站-英华家电维修论坛 (http://www.bsss.info/)
Powered by Discuz! X3.2