2011/12/13

102. Бинар тоолол ба BCD код


Тоон электроникт бинар тооллыг хэрэглэнэ. Харин хүмүүс өдөр тутмын амьдралдаа 10-тын тооллын системийг ашигладаг. Гэвч үнэндээ бинарыг 10т уруу хөврүүлэх тийм ч хялбархан биш. Иймээс 10тыг бинараар дүрслэх илүү хялбар код хэрэгтэй болдог. Ийм кодыг бинараар кодлогдсон 10т буюу BCD /Binary Coded Decimal/ код гэнэ.

23,15 гэсэн 10тын тоог BCD кодоор кодолъё.


Бинараар кодлох хэд хэдэн систем байдаг бөгөөд эдгээрт 8421, 4221, 5421, 84-2-1, 2421 BCD кодууд орно.

Decimal
8421 BCD
4221 BCD
5421 BCD
84-2-1 BCD
2421 BCD
0
0000
0000
0000
0000
0000
1
0001
0001
0001
0111
0001
2
0010
0010
0010
0110
0010
3
0011
0011
0011
0101
0011
4
0100
1000
0100
0100
0100
5
0101
0111
1000
1011
1011
6
0110
1100
1001
1010
1100
7
0111
1101
1010
1001
1101
8
1000
1110
1011
1000
1110
9
1001
1111
1100
1111
1111

Эдгээр BCD кодуудаас 8421 BCD код хамгийн өргөн хэрэглэгдэнэ.

Бинарыг BCD уруу хөврүүлэхдээ зүүн шифт үйлдлийг хийгээд 4-өөс их бол 3-ийг нэмнэ.
Жишээ нь  1101011 буюу 10таар 107-г BCD код уруу хөврүүлье. 1101011 нь нийт 7 битээс тогтох тул 7 удаа зүүн шифт үйлдлийг гүйцэтгэнэ. Шифт үйлдэл гүйцэтгэсний дараа BCD-гийн утгыг 4-тэй жиших ба 4-өөс бага бол дараагийн шифт үйлдлийг гүйцэтгэх ба 4-өөс их бол 3 /0011/-ийг нэмнэ. Энд эхний шифтийг хийхэд BCD0-ийн утга 1 болно. 2 дахь шифтийг хийхэд BCD0-ийн утга 11 болно. 3 дахь шифтийг хийхэд BCD0-ийн утга 110=6 болох тул 3-ийг нэмнэ. 

4 дэх шифтийг хийхэд BCD1-ийн утга 1, BCD0-ийн утга 0011 болно. 5 дахь шифтийг хийхэд BCD1-ийн утга 10, BCD0-ийн утга 0110 болно. Энэ үед BCD0-ийн утга 4-өөс их байгаа тул 3-ийг нэмнэ. 6 дахь шифтийг хийхэд BCD1-ийн утга 101, BCD0-ийн утга 0011 болно. Энэ үед BCD1-ийн утга 4-өөс их болсон тул 3-ийг нэмнэ. Ингээд хамгийн сүүлийн шифтийг хийхэд BCD2-ийн утга 1, BCD1-ийн утга 0, BCD)-ийн утга 7 болсон байна.


Өөр нэг жишээ үзье. 11111 буюу 10таар 31-ийг BCD уруу хөврүүлье. 11111 нь 5 битээс тогтох тул 5 удаа шифт үйлдлийг гүйцэтгэнэ.


BCD нэмэх үйлдлийг гүйцэтгэхдээ нэмээд гарсан үр дүн 9-өөс их байвал 6-г нэмнэ. ингээд хялбар 3н жишээг үзье. Эхний жишээнд гарсан үр дүн 9-өөс ихгүй байгаа тул хэвээр үлдээнэ. Харин сүүлийн 2 жишээнд гарсан үр дүнгүүд 9-өөс их байгаа тул 6-г нэмнэ.


Дараагийн жишээнд 184 дээр 576-г нэмэх үйлдлийг энэ дүрмийн дагуу гүйцэтгэе.


878 дээр 569-ийг нэмэх үйлдлийг мөн дээрх дүрмийн дагуу гүйцэтгэж харуулъя.