2011/12/13

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


Тоон электроникт бинар тоолол буюу 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, дараагийн бит нь 1XOR 0 = 1, сүүлийн бит нь 1 XOR 1 = 0 байна.