SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar Doç.Dr. Murat ÇAKIROĞLU Mekatronik Mühendisliği Sakarya Üniversitesi
On’lu Sayılar Basamaklı sayı sistemlerinde her bir basamağın değeri taban ve basamak çarpanın değerlerine göre hesaplanır. Onlu sayılarda taban 10’dur, çünkü herhangi bir sayı 10 farklı sayı (0’dan 9’a) ile ifade edilebilir. On’lu sayıların basamak çarpanları sağdaki basamaktan (100 =1) başlanarak ve sola doğru artarak 10’nun üssü olarak hesaplanır. …105 104 103 102 101 100. Kesirli sayılar için basamak çarpanları sağa doğru giderek azalan negatif üsler olarak ifade edilir. 102 101 100. 10-1 10-2 10-3 10-4 …
Örnek Çözüm On’lu Sayılar On’lu sayıların değerleri ise her bir basamağın çarpanı ile basamak değerlerinin çarpımlarının toplamı sayesinde hesaplanır. Örneğin 9240 sayısı aşağıdaki şekilde gösterilir. (9 x 103) + (2 x 102) + (4 x 101) + (0 x 100) veya 9 x 1,000 + 2 x 100 + 4 x 10 + 0 x 1 Örnek 480.52 sayısını basamakları toplamları şeklinde gösteriniz. Çözüm 480.52 = (4 x 102) + (8 x 101) + (0 x 100) + (5 x 10-1) +(2 x 10-2)
İkili Sayılar Sayısal sistemler için, İkili (binary) sayı sistemi kullanılır. İkili sayılarda, basamakların rakamları 0 veya 1 olabilir. Taban ise 2’dir İkili sayıların basamak çarpanları sağdaki basamaktan (20 =1) başlanarak ve sola doğru artarak 2’nin üssü olarak hesaplanır. …25 24 23 22 21 20. Kesirli sayılar için basamak çarpanları sağa doğru giderek azalan negatif üsler olarak ifade edilir. 22 21 20. 2-1 2-2 2-3 2-4 …
0’dan 15’e kadar ikili sayıların sayımı yanda görülmektedir. Onlu Sayılar İkili Sayılar 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 0’dan 15’e kadar ikili sayıların sayımı yanda görülmektedir. 1’lerin ve 0’ların değişim paternleri renkli olarak gösterilmiştir. Sayıcılar genellikle bu paternleri kullanılırlar.
Örnek Çözüm İkili Çevrimler Bir ikili sayının onlu eşdeğeri, 1 olan basamakların çarpan değerlerinin toplanması ile hesaplanabilir. 0 değerine sahip basamaklar önemsizdir. Örnek 100101.01 sayısını onluya çevirelim. Çözüm Öncelikle basamakların çarpan değerleri yazılır. Sonra sayıdaki her bir 1’in çarpan değerleri topanır. 25 24 23 22 21 20. 2-1 2-2 32 16 8 4 2 1 . ½ ¼ 1 0 0 1 0 1. 0 1 32 +4 +1 +¼ = 37¼
Example Solution İkili Çevrimler Onlu sayılar ters işlemler uygulanarak ikili sayıya çevrilebilir. Her bir basamağın basamak çarpanları yazılır ve onlu sayıyı oluşturacak şekilde basamaklara 1’ler koyulur. Example 49 sayısını ikiliye çevirelim. Solution 26 25 24 23 22 21 20. 64 32 16 8 4 2 1. 0 1 1 0 0 0 1.
Örnek Çözüm İkili Çevrimler Kesirli onlu bir sayının ikili sayıya çevriminde sayının kesirli kısmı ardışık olarak 2 ile çarpılır. Eldeler ikili sayıyı oluşturur. 0.188 sayısını ikiliye çevirelim. Örnek Çözüm 0.188 x 2 = 0.376 carry = 0 MSB 0.376 x 2 = 0.752 carry = 0 0.752 x 2 = 1.504 carry = 1 0.504 x 2 = 1.008 carry = 1 0.008 x 2 = 0.016 carry = 0 Cevap= .00110 (5 rakamlı sayı olarak kabul edilirse)
Example Solution İkili Çevrimler Onlu sayının bir başka sayı sistemine çevriminde ardışık bölme yöntemi kullanılabilir. İkili sayıya çevrimde onlu sayı 2^ye ardışık olarak bölünür. 49 sayısını ikili sayıya bölme yöntemini kullanarak çevirelim. Example Bu işlem, ters bölme ile yapılır ve cevap soldan sağa doğru okunur. Bölüm sola kalan ise yukarı yerleştirilir. Solution CEVAP: 1 1 Kalan Bölüm 1 49 2 1 3 6 12 24 Onlu sayı taban Son bölüm 0 olana kadar devam edilir.
Örnek Çözüm Onaltılık Sayılar Decimal Hexadecimal Binary Onaltılık sayı sistemi sayıları göstermek için 16 karakter kullanmaktadır. 0’dan 9’a kadar rakamlar ve A’dan F’ye kadar harfler. Büyük ikilik sayılar 4-bit olarak gruplandırılarak kolaylıkla onaltılık sayılara çevrilebilir. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1001 0110 0000 11102 sayısını onaltılığa çevirelim: Örnek En sağdan başlayarak basamakları 4-bit olarak gruplandıralım. CEVAP=960E Çözüm
{ Örnek Çözüm Onaltılık Sayılar Decimal Hexadecimal Binary Onaltılık sayılarda basamakların çarpan değeri, 16’nın üstel değerleridir. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 { 163 162 161 160 . Basamak çarpanları 4096 256 16 1 . Örnek 1A2F16 sayısını onluk karşılığı? En sağdaki basamaktan başlayarak: 4096 256 16 1 Çözüm 1 A 2 F16 1(4096) + 10(256) +2(16) +15(1) = 670310
Örnek Çözüm Sekizlik Sayılar Decimal Octal Binary 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0 1 2 3 4 5 6 7 10 1112 13 14 15 16 17 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Sekizlik sayılar rakamları göstermek için 0’dan 7’ye kadar rakamları kullanır. İkilik sayılar, 3-bit olarak gruplandırılarak sekizlik sayılara kolaylıkla çevrilebilir. Örnek 1 001 011 000 001 1102 sayısını sekizlik olarak gösterelim: Sağdan başlayarak 3-bit gruplama yapalım. CEVAP= 1130168 Çözüm
{ Çözüm Çözüm Sekizlik Sayılar Decimal Octal Binary Sekizlik sayılarda basamakların çarpan değeri 8’in üstel değerleridir. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0 1 2 3 4 5 6 7 10 1112 13 14 15 16 17 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 { 83 82 81 80 . Basamak çarpanları 512 64 8 1 . Çözüm 37028 sayısını onluk karşılığı? Çözüm En sağdaki basamaktan başlayarak: 512 64 8 1 3 7 0 28 3(512) + 7(64) +0(8) +2(1) = 198610
BCD Decimal Binary BCD İkili kodlanmış onluk (BCD), sayısal sistemlerde kullanılan bir sayı sistemidir. Özellikle, saat devreleri gibi ikili olarak işlenen sayıların onluk olarak gösterilmesi gereken durumlarda tercih edilir. Tablo, ikilik sayılar ile BCD sayılar arasındaki farkı göstermektedir. BCD’de her bir onluk basamak 4-bit ile gösterilir. 1010 ‘dan 1111’ e kadar olan ikilik sayılar BCD’de kullanılmaz. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 0101 0001 0001 0001 0001 0001 0001
BCD Örnek: 1000 0011 0101 1001? BCD sayısını onluk karşılığı nedir? Cevap: 8000 4000 2000 1000 800 400 200 100 80 40 20 10 8 4 2 1 8000 + 200 +100 + 40 + 10 + 8 +1 = 835910
BCD Lab etkinliğinde bir BCD sayının onluk sayıya çevrimi.
Gray kodu Gray kodu, basamak ağırlığı olmayan bir koddur. Decimal Binary Gray code Gray kodu, basamak ağırlığı olmayan bir koddur. Sayıların sıralı artışlarında yada azalışında sadece bir bit değişim olur. Sayılarda basamak değeri olmadığından, aritmetik işlemlerin olduğu yerlerde kullanılması mümkün değildir. Sütun esasına göre çalışan cihazlardaki hatayı azalttığından, giriş / çıkış birimlerinde ve ADC’lerde tercih edilirler. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
Gray kodu Enkoder, Gray kodunun kullanıldığı tipik bir örnektir. 3 adet IR gönderici/alıcı, şaftın posizyonunu kodlamak için kullanılır. Soldaki enkoder ikilik sıralama kullanmakta ve bu durumda 3 bit değişimi olabilmektedir. Sağdaki enkoder ise gray kodunu kullamakta ve her konum değişimi çin sadece 1 bit değişmektedir. İkilik Sıra Gray kod sırası
ASCII ASCII alfanümereik ve kontrol karakterlerinin bulunduğu bir koddur. Orjinal hali 7-bit uzunluğundaki toplam 128 karakterdir. 1981 yılında , IBM 8-bitlik genişletilmiş ASCII kodunu önermiştir. Böylece karakter sayısı 256’ya çıkarılmıştır. Bununla birlikte Unicode gibi diğer kodlar da geliştirilmiştir.
İkili Toplama İkili toplama kuralları 0 + 0 = 0 Toplam= 0, elde = 0 0 + 1 = 0 Toplam= 1, elde = 0 1 + 0 = 0 Toplam= 1, elde = 0 1 + 1 = 10 Toplam= 0, elde = 1 Eğer önceki toplamalar nedeniyle bir giriş eldesi varsa kurallar aşağıdaki gibidir. 1 + 0 + 0 = 01 Toplam= 1, elde = 0 1 + 0 + 1 = 10 Toplam= 0, elde = 1 1 + 1 + 0 = 10 Toplam= 0, elde = 1 1 + 1 + 1 = 10 Toplam = 1, elde= 1
Örnek Çözüm İkili Toplama 00111 ve 10101 sayılarını toplayınız ve 10 sayı olarak da gösteriniz. Örnek Çözüm 1 1 1 00111 7 10101 21 1 1 1 = 28
Örnek Çözüm İkili Çıkarma İki çıkarma için kurallar 0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 10 - 1 = 1 (1 borç var) 00111 sayısını 10101 sayısından çıkaralım ve onlu sayı sisteminde de gösterelim. Örnek Çözüm /1 /1 /1 10101 21 00111 7 1 1 1 = 14
1’e tümleyen Ikili bir sayının 1 tümleyeni rakamların terlenmesi ile bulunur.( Tüm 0’lar 1, tüm 1’ler ise 0 yapılır.) Örneğin 11001010 sayısının 1’e tümleyeni 00110101 Sayısal devrelerde 1’e tümleyen DEĞİL kapıları ile alınır. 1 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1
2’ye tümleyeni bulmak için; 00110110 (2’ye tümleyen) 2’nin tümleyeni İkilik bir sayının 2’ye tümleyeni, O sayının 1’e tümleyenin LSB bitine 1 eklenmesi ile bulunur. Örneğin 11001010 00110101 (1’e tümleyen) +1 2’ye tümleyeni bulmak için; 00110110 (2’ye tümleyen) 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0
İşaretli ikilik sayılar İşaretli ikilik sayıların gösterimi bir kaç farklı yöntem ile olabilir. Bütün yöntemlerde MSB biti işareti gösteren bittir. Bilgisayarlar işaretli sayıları göstermek için 2’ye tümleyen aritmetiği kullanır. Bu yöntemde pozitif sayılar klasik ikilik formda gösterilirken (işaret biti 0) negatif sayılar 2’ye tümleyen olarak gösterilir (işaret biti 1). Örneğin, + 58, 8-bit olarak yazılırsa ; 00111010 (true form). İşaret bit Ağırlık bitleri
İşaretli ikilik sayılar Negatif sayılar ilgili sayının 2’ye tümleyeni alınarak yazılır. -58 = 11000110 (Tümleyen) İşaret biti Ağırlık bitleri Negatif sayıların değerlerini hesaplamanın kolay yolu işaret bitinin değerini -128 (8-bit sayı için) kabul etmek ve geri kalan 1’lerin ağırlıklarını -128 ile toplamaktır. Basamak ağırlıkları : -128 64 32 16 8 4 2 1. 1 1 0 0 0 1 1 0 -128 +64 +4 +2 = -58
İşaretli sayılar ile Aritmetik işlemler İşaretli sayılarda 2’ye tümleyen aritmetiği toplama ve çıkarma işlemlerini kolaylaştırmaktadır. Toplama için kural : İki işaretli sayıyı topla ve oluşan eldeyi önemseme. Sonuç işaretli bir sayıdır. Örnekler: 00011110 = +30 00001111 = +15 00001110 = +14 11101111 = -17 11111111 = -1 11111000 = -8 00101101 = +45 11111101 = -3 1 11110111 = -9 Elde önemsiz
İşaretli sayılar ile Aritmetik işlemler Çıkarmanın kuralı : Çıkan sayının 2’ye tümleyinini al ve çıkarılan sayı ile topla. Oluşan son eldeyi önemseme. Sonuç işaretli sayıdır. 00011110 00001111 - 00001110 11101111 11111111 11111000 (+30) –(+15) (+14) –(-17) (-1) –(-8) Çıkanın 2’ye tümleyeni ve çıkarılan ile toplanması 00011110 = +30 11110001 = -15 00001110 = +14 00010001 = +17 11111111 = -1 00001000 = +8 1 00001111 = +15 00011111 = +31 1 00000111 = +7 Elde önemsiz Elde öenmsiz
İşaretli sayılar ile Aritmetik işlemler NOT: Eğer işlemlerde sayı sistemin gösteremeyeceği bir sonuç çıkarsa TAŞMA durumu söz konusu olur. Taşma, işlem yapılan iki sayının da aynı işarette olduğu durumlarda ortaya çıkar ve yanlış sonuç doğurur. 2 örnek : 01000000 = +128 01000001 = +129 10000001 = -127 10000001 = -126 Elde önemsiz 100000010 = +2 Yanlış! Işaret biti değişti
Eşlik biti Eşlik biti, özellikle basit iletim ortamlarında hata denetimi için kullanılan ilkel bir yöntemdir. Bir eşlik biti, iletilen bir grup bite ekstra olarak eklenen ve sayıdaki 1’lerin adetini tek (tek eşlik) veya çift olmaya (çift eşlik) zorlayan bir yöntemdir.