Showing posts with label 1. Бинари кодууд. Show all posts
Showing posts with label 1. Бинари кодууд. Show all posts

1.4. Бинари тоолол буюу хасах тоо

Бинари тоололд хасах тоог тэмдэглэх үндсэн 3 арга байдаг. Энд sign magnitude буюу ахлах бит нь зөвхөн тэмдгийг илэрхийлэх, 1-ийн гүйцээлт, 2-ийн гүйцээлт гэсэн 3 арга байдаг.
Sign magnitude аргаар хасах тоог тэмдэглэх үед ахлах битийн утга нь уг тооны нэмэх эсвэл хасах болохыг заана.
1-ийн гүйцээлтийг ашиглаж хасах тоог тэмдэглэх ба ахлах бит нь мөн уг тооны тэмдгийг заах ба бинари тооны сөрөг утгыг олохдоо complement буюу гүйцээлтийг ашиглана. Гүйцээлтийг олдог элемент нь инвертер юм.
2-ийн гүйцээлтийг ашиглаж хасах тоог тэдэглэж болох бөгөөд ахлах битийн утга уг тооны тэмдгийг тодорхойлно. Бинари тооны сөрөг утгыг 2-ийн гүйцээлт ашиглан тогтоохдоо complement буюу гүйцээлт гэсэн үйлдлийг гүйцэтгээд 1-ийг нэмнэ.
Эдгээрээс аритметикийн үйлдлийг гүйцэтгэхэд 2-ийн гүйцэтгэл нь илүү тохиромжтой тул тоон электроникт 2-ийн гүйцээлтийг ашиглаж хасах тоог тэмдэглэх элбэг.
Ерөнхийдөө ахлах бит нь нэмэх эсвэл хасах тооны аль нь болохыг заана. Хэрэв ахлах бит 0 бол нэмэх тоо, 1 бол хасах тоо гэж ойлгоно.
2-ийн гүйцээлтийн хасах тоог дараах байдлаар олно.
Иймээс 2-ийн гүйцээлтээр тэмдэглэгдсэн тооны утгыг олохдоо үндсэн 2 аргыг ашиглана. Үүнд 1-рт нь ахлах битийн утга тэмдгийг заах тул хэрэв ахлах бит нь 1 бол уг утгыг хасах гэж авна. тэгээд үлдсэн утгыг нэмэхэд олно.
Нөгөө нэг арга 2-ийн гүйцээлтийг олдог үндсэн дүрмээр буюу эхлээд complement үйлдлийг гүйцэтгээд 1-ийг нэмж олно.

1.3. Бинари тоолол буюу гүйцээлт

Бинари тооллын системд хасах үйлдэл гэж үнэндээ байдаггүй. Хасах үйлдлийг ерөнхийд нь гүйцээлт ашиглаж нэмэх үйлдлээр гүйцэтгэнэ.
Жишээлэхэд 9-ийн гүйцээлтийг ашиглаж хасах үйлдлийг гүйцэтгэе.
647-гоос 283-ийг хасах үйлдлийг 9-ийн гүйцээлт ашиглан хийе. 999-283=716 нь 283-ийн 9-ийн гүйцээлт болно. тэгвэл 647 дээр 283-ий 9-ийн гүйцээлт болох 716-*г нэмнэ. Оронгийн шилжилт гарвал түүнийг дахин нэмнэ. Ингэснээр 9-ийн гүйцээлт ашиглаж хасах үйлдлийг гүйцэтгэнэ. Иймд 9-ийн гүйцээлтийг ашиглаж хасах үйлдлийг гүйцэтгэх нь 3 алхамтай байна. Энд 1-рт хасагдаж буй тооны 9-ийн гүйцээлтийг олно. Дараа энэ тоогоо хасж буй тоон дээрээ нэмнэ. Оронгийн шилжилт гарвал түүнийг дахин нэмнэ.


Одоо 10-ийн гүйцээлтийг ашиглаж хасах үйлдлийг гүйцэтгэе. Үүний тулд 283-ийн 10-ийн гүйцээлт болох 717-ийг олно. дараа нь 283-ийн 10-ийн гүйцээлтийг хасж буй тоо болох 647 дээр нэмнэ. Оронгийн шилжилт гарвал түүнийг тооцохгүй. Ингэснээр 9-ийн гүйцээлтийг ашиглаж хасах үйлдэл гүйцэтгэхээс давуу болох нь харагдаж байна.
Үүнтэй адилаар 1-ийн гүйцээлтийг ашиглаж бинари хасах үйлдлийг гүйцэтгэе. Жишээ болгон бинари 00111001-ээс 00011110-ийг хасах үйлдлийг 1-ийн гүйцээлт ашиглан гүйцэтгэе. Үүний тулд 00011110-ийн 1-ийн гүйцээлтийг олно. Дараа нь үүнийгээ хасаж буй тоон дээрээ нэмэх ба оронгийн шилжилт гарвал түүнийг дахиж нэмнэ.
Одоо дээрх үйлдлийг 2-ийн гүйцээлт ашиглаж гүйцэтгэе. Үүний тулд 00011110-ийн 2-ийн гүйцээлтийг олно. Дараа нь үүнийгээ хасаж буй тоон дээрээ нэмэх ба оронгийн шилжилт гарвал түүнийг тооцохгүй. Ингэснээр 2-ийн гүйцээлт ашиглан хасах үйлдэл гүйцэтгэх нь илүү боловсронгуй болохыг харж болно. Жич: тухайн тооны 2-ийн гүйцээлтийг олох хамгийн хялбар арга бол тухайн тооны 1-ийн гүйцээлтийг олоод дээр нь 1-ийг нэмэх явдал юм.

1.2. Бинари тоолол буюу 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-ийг нэмэх үйлдлийг мөн дээрх дүрмийн дагуу гүйцэтгэж харуулъя.




1.1. Бинари тоолол ба грей код

Тоон электроникт бинари тоолол буюу 2-тын тооллын системийг өргөн ашиглана. Сүүлийн үед гарч ирсэн микропрофессор, микроконтроллер, эмбеддэд системүүдэд 16тын тооллын системийг түлхүү ашиглах болсон.
Бинари тоолол нь 0 ба 1 гэсэн 2 тоог ашиглах тул 2-тын тооллын систем гэж нэрлэнэ. 4 битийн бинари тооллын хувьд 0111 нь 10тын тооллоор 7 гэсэн утгыг, 1000 нь 10тын тооллоор 8 гэсэн утгыг заана. Эндээс бинари тоолол өсөх дараалалдаа 1-ээс олон бит өөрчлөгдөж байгааг харгж болно.
Практикт өсөх дараалалдаа зөвхөн 1 бит нь л өөрчлөгдөж байдаг бинари код заримдаа хэрэг болдог ба ийм кодыг грей код гэж нэрлэнэ.
Грей кодыг үүсгэхдээ толин тусгалын аргыг ашиглана.
Жишээ 0 ба 1-ийг 1 битийн грей код гэж үзвэл 0 ба нэгийн толин тусгал нь 1 ба0 болно. Ингэж толин тусгалаар үүссэн дүрсийн бодит дүрсийн өмнө 0, хуурмаг дүрсийн өмнө 1-ийн тавихад 2 битийн грйед код үүснэ.

Үүнтэй адилаар 2 битийн грей код нь 00, 01, 11, 10 бол түүний толин тусгал нь 10, 11, 01, 00 байна. Бодит дүрсийн өмнө 0-ийг, хуурмаг дпүрсийн өмнө 1-ийг тавьж 3 битийн грйе кодыг үүсгэнэ.

4 битийн грей кодыг үүсгэхдээ 3 битийн грйе кодны толин утсгалыг ашиглана.

Бинари тоог грей код уруу хөврүүлэхдээ шифт болон XOR үйлдлийг (ялгаатай бол нэг) ашиглана.
Жишээ нь 101110 бинариг грей код уруу хөврүүлье. Эхлээд хамгийн ахлах бит хэвээр бууна.

Дараагийн битийг олохдоо ахлах бит-тэй дараагийн битийг XOR үйлдэл хийнэ.

Яг энэ зарчмаар дараа дараагийн битүүдийг олно.
Энд ахлах бит 1 хэвээрээ, дараагийн бит 1 XOR 0 = 1, дараагийн бит 0 XOR 1 = 1, дараагийн бит 1 XOR 1 = 0, дараагийн бит 1 XOR 1 = 0, дараагийн бит 1 XOR 0 = 1 байна.

Грей кодыг бинари уруу хөврүүлэхдээ саяны яг эсрэг зарчмаар ажиллана. Үүний тулд эхлээд эхний ахлах битийг хэвээр буулгана.

Дараа нь энэ битийг бинаригийн дараах биттэй XOR үйлдлийг гүйцэтгэнэ.

Үүнтэй адил зарчмаар дараагийн битүүдийг олно.
Энд ахлах бит болох 1 хэвээрээ бууна. Дараагийн бит нь 1 XOR 1 = 0, дараагийн бит нь 0 XOR 1 = 1, дараагийн бит нь 1 XOR 0 = 1, дараагийн бит нь 1 XOR 0 = 1, сүүлийн бит нь 1 XOR 1 = 0 байна.