DERS 2 SAYI DÜZENLERİ
İÇERİK Tarihçe Onluk sayı sistemi İkilik sayı sistemi Onluk/ikilik dönüşümleri İkilik sayı sisteminde toplama İkilik sayı sisteminde doğrudan çıkarma İkilik sayı sisteminde tümleyen aritmetiği ile çıkarma İkilik sayı sisteminde çarpma İkilik sayı sisteminde bölme Sekizli ve Onaltılı sayı sistemleri
TARİHÇE Sayı ve sayma kavramının başlangıcı belirsiz Sümerler sayma işlemini kullanmışlar Günümüz rakam şekilleri MS 400 de Hindistan’da geliştirilmiş Bu rakamlar sonrasında müslümanlar tarafından da benimsenmiş Ebu Abdullah bin Musa El Harzemi (MS 780-850 ) ‘Cebir ve denklem hesabı hakkında özetlenmiş kitap’ adlı kitabıyla: Sıfır sayısını Onluk sayı sistemini tanıttı
Onluk Sayı Düzeni Onluk sayı düzeninde on değişik sembol rakamsal büyüklükleri tanımlamak için kullanılır. Bunlar: 0 1 2 3 4 5 6 7 8 9
Onluk Sayı Düzeni Onluk sayı düzeninde, sayının en sağdaki rakamı en düşük, en soldaki rakamı da en yüksek değeri ifade edecek şekilde düzenlenmiştir. Burada sayının her bir basamağı ile ifade edilen büyüklük aşağıdaki yaklaşımdaki gibi 10 değerinin üstsel katları olarak belirlenir. . . . 10^4 10^3 10^2 10^1 10^0 5. 4. 3. 2. 1.basamak
Onluk Sayı Düzeni Buna göre her bir rakamın sayı içerisinde ifade ettiği değer: ilgili rakam ile o rakamın belirlediği basamak değerinin büyüklüğü- nün çarpımı olarak belirlenir. Buna göre bir sayı ile ifade edilen değer: ilgili sayı içerisindeki her bir rakamın ifade ettiği değerlerin toplamı olarak belirlenir.
Onluk Sayı Düzeni ÖRNEK: 3954 sayısı ile ifade edilen değer 3x1000 + 9x100 + 5x10 + 4x1 olarak hesaplanır. 10 tabanında tanımlanmış sayısal değerler yaygın olarak kullanıldıkları için tabanın 10 olduğunu belirlemede özel bir notasyon kullanılmamaktadır.
Diğer Sayı Düzenleri Kullanılan başka sayı düzenleri de vardır. Bunlarda da onluk sayı düzenindeki gibi basamak ağırlıklarının soldan sağa doğru azalması ve basamak değerlerinin ilgili tabanın basamak sırasının üstsel kuvveti olarak düzenlenmesi prensibi kullanılır.
İkili Sayı Düzeni İkili sayı düzeninde kullanılan rakamlar: 0 ve 1 olarak tanımlıdır. İkili sayı sistemi bilgisayar uygulamalarında iki farklı lojik seviye kullanım ihtiyacını karşıladığı için yaygın olarak kullanılır.
İkili Sayı Düzeni İkili sayı düzeninde her bir basamağa BİT adı verilmektedir. Dolayısıyla en sağdaki basamağa en düşük anlamlı bit (DAB-LSB) en soldaki basamağa en yüksek anlamlı bit (YAB-MSB) adı verilir. İkilik (binary) sayılar: 0b 1111 b’1111’ (PIC işlemci notasyonu) % 1111 11112 farklı biçimlerinde gösterilirler
İkilik – Onluk Dönüşümü Aynı onluk düzende olduğu gibi her bir basamağın ifade ettiği değer ile ilgili basamağın sayısal değerleri çarpılıp toplanarak elde edilirler. Örnek: İkilik düzende 10111 sayısının onluk düzende karşılığını hesaplayalım. 1x24 + 0x23 + 1x22 + 1x21 + 1x20 = 23 olur
Onluk-İkilik Dönüşümü ARAMA YÖNTEMİ Sayı içerisinde ikinin kuvvetini armaya dayanır. 23 sayısı için; 23 – 32 = -11 YOK => 0 23 – 16 = 7 VAR => 1 7 – 8 = -1 YOK => 0 7 – 4 = 3 VAR => 1 3 – 2 = 1 VAR => 1 1 – 1 = 0 VAR => 1 010111 veya 10111 ikilik düzendeki karşılığı elde edilir.
Onluk-İkilik Dönüşümü BÖLME YÖNTEMİ Sayı Sürekli 2’ye bölünür ve kalanın 1 yada 0 oluşuna bakılarak basamaklar belirlenir KALAN 23/2 = 11 1 VAR => 1 11/2 = 5 1 VAR => 1 5/2 = 2 1 VAR => 1 2/2 = 1 0 VAR => 0 1/2 = 0 1 VAR => 1 10111 ikilik düzendeki karşılığı
İkilik Tabanda İşlemler: TOPLAMA Aynı onluk tabanda uygulanan kurallar uygulanır. Tek fark her basamaktaki toplama sırasında elde değerinin 10 yerine 2 sayısına ulaşmasıdır. 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 0 ve de elde 1
İkilik Tabanda İşlemler: TOPLAMA Örnek: 11001 + 10101 101110
İkilik Tabanda İşlemler: ÇIKARMA Aynı onluk tabanda uygulanan kurallar uygulanır. Farklı olarak tümleyen aritmetiğine göre yapılan çıkarma işlemi de tanımlıdır.
İkilik Tabanda İşlemler: ÇIKARMA DOĞRUDAN ÇIKARMA: 0-0 = 0 1-0 = 1 1-1 = 0 0-1 = 1 ve de borç 1
İkilik Tabanda İşlemler: ÇIKARMA Örnek: % 11001 - % 10101 % 00100
İkilik Tabanda İşlemler: ÇIKARMA TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA: Çıkarma işleminde kalanın sıfır veya sıfırdan büyük olması durumunda doğrudan çıkarma basamakları uygulanırken aksi durumda problem çıkmaktadır. Bu problemi daha pratik olarak çözmek için toplama işlemi şeklinde tanımlı çıkarma işlemi yaklaşımı mevcuttur. Buradaki yaklaşım belli sayıda basamak ile ifade edilen bir sayının alabileceği en büyük değere 1 sayısının ilave edilmesi durumunda sayının 0 değerini (ama elde 1 ile) alması özelliğini kullanmaktır.
TÜMLEYEN ARİTMETİĞİ Yani, bir a sayısına 1 eklendiğinde sonuç 0 oluyorsa a sayısının değeri -1 miş veya bir a sayısına 2 eklendiğinde sonuç 0 oluyorsa a sayısının değeri -2 miş bir a sayısına 3 eklendiğinde sonuç 0 oluyorsa a sayısının değeri -3 müş gibi bir yaklaşım kullanılır.
TÜMLEYEN ARİTMETİĞİ O zaman: 0 sayısından sonra + sayılar sıralanır 0 sayısından önce – sayılar sıralanır Tüm sayılar bir silindir üzerinde sıralı olarak düşünülürse (otomobil km sayacı gibi) en büyük sayıdan sonra tekrar en küçük sayıya dönülür Maksimum sayıda + ve – sayıyı ifade etmek için silindiri ortadan ikiye bölelim Sonuç: (1 ) - (2N-1–1) arası sayılar pozitif (2N-1–1 adet) (2N-1) - (2N ) arası sayılar negatif (2N-1 adet)
TÜMLEYEN ARİTMETİĞİ Sonuç DEVAM: Tüm pozitif sayılar işaretsiz gösterimleri ile aynıdır Tüm pozitif sayılar için MSB 0 olur 0 hariç iken en büyük pozitif sayı 2N-1-1 olur (2N/2-1) Tüm negatif sayılar için MSB 1 olur En küçük negatif sayı -2N-1 (2N/2-1+1) Dolayısıyla MSB işaret biti olarak anılır Küçük + sayılarda MSB sağında 0 çoktur Küçük – sayılarda MSB sağında 1 azdır Büyük + sayılarda MSB sağında 0 azdır Büyük – sayılarda MSB sağında 1 çoktur
TÜMLEYEN ARİTMETİĞİ Sayının işaretini değiştirmek için Sayının tümleyeni hesaplanır (1’e tümleme) Sayının tümleyenine 1 sayısı eklenir (2’ye tüm)
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Örnek: % 11111 + % 00001 % 1 00000 00001 ve 11111 sayılarına birbirlerinin 2’ye (tabana) göre tümleyeni adı verilmektedir. Benzer şekilde 00010 ve 11110 sayıları da aynı özelliği gösterirler.
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Bu yaklaşım göz önünde bulundurularak tümleyen aritmetiği ile çıkarma işleminde, çıkarılacak sayının çıkarılması yerine bu sayının 2’ye (yani taban değerine) tümleyeni kendisinden çıkarılacak sayıya eklenir. Dolayısıyla çıkarma işlemi toplama işlemi şeklinde tanımlanmış olur.
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Örnek: Onluk tabanda 0008 sayısından 0003 sayısını çıkaralım. 0003 => 9997 sayının tabana (10) göre tümleyeni Tabana göre tümleyen ile sayının toplamı aynı sayıda basamak üzerinden 0 sonucunu verir. 0003 + 9997 = 1 0000 olur (4 basamak için doğru) O zaman -0003-9997 = 0 => -0003 = 9997 olur. 0008 – 0003 = 0008 + 9997 = 1 0005 Bu ne demek?
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Yani sonuç 0005 olarak bulunur. Ancak bu değerin düzenlenmesi gerekebilir. Bu işlem sonucundaki elde bitine İŞARET BİTİ adı verilir ve sonuç bu bite göre düzenlenir. Eğer işaret biti 1 ise sonuç + dır ve aynı bırakılır Eğer işaret biti 0 ise sonuç – dir ve düzenlenir. NEDEN?
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA 4 bit ile 0-15 arası tamsayıları ifade etmek mümkün olabilir: 0 0000 1 0001 1111 15 2 0010 1110 14 3 0011 1101 13 4 0100 1100 12 5 0101 1011 11 6 0110 1010 10 7 0111 1001 9 1000 8
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Yada alternatif olarak –8 ile 7 arası tamsayılar da ifade edilebilirler: +0 0000 +1 0001 1111 -1 +2 0010 1110 -2 +3 0011 1101 -3 +4 0100 1100 -4 +5 0101 1011 -5 +6 0110 1010 -6 +7 0111 1001 -7 1000 -8
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA Burada 10 tabanında gösterildiği gibi 2 tabanına göre tümleme kabulü yapılmaktadır. +0 0000 +1 0001 + 1111 -1 = 1 0000 +2 0010 + 1110 -2 = 1 0000 +3 0011 + 1101 -3 = 1 0000 +4 0100 + 1100 -4 = 1 0000 +5 0101 + 1011 -5 = 1 0000 +6 0110 + 1010 -6 = 1 0000 +7 0111 + 1001 -7 = 1 0000 1000 -8
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA İkilik düzende bir sayının tabana tümleyeni için Sayının 1’e tümleyeni hesaplanır Elde edilen sayıya 1 değeri eklenir ÖRNEK: verilen sayı % 10111 1’e tümleyeni % 01000 2’ye tümleyeni % 01001
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA ÖRNEK: % 11001 25 - % 10101 21 % 01010 21’in 1’e tümleyeni % 01011 21’in 2’ye tüm. Yani % 11001 25 + % 01011 21’in 2’ye tüm. % 1 00100 elde işaretsonuç
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA ÖRNEK: % 10101 21 - % 11001 25 % 00110 25’in 1’e tümleyeni % 00111 25’in 2’ye tüm. Yani % 10101 21 + % 00111 25’in 2’ye tüm. % 0 11100 elde işaretsonuç
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA ÖRNEK devam: İşaret biti 1 yani negatif olduğu için sonucun düzenlenmesi gerekir. Bunun için de sonucun 2’ye tümleyeninin hesaplanması gerekir. % 11100 % 00011 % 00100 => 4 yani -4 sayısı elde edilir.
TÜMLEYEN ARİTMETİĞİ (KISACA) 2’lik tabandaki bir sayının, 1’e tümleyenini bulmak için: 0’lar 1, 1’ler ise 0 yapılır. 2’e tümleyenini bulmak için ise: 1’e tümleyenine 1 eklenir. Not: Bir sayının 2’ye tümleyeni, o sayının negatifidir. 10001 sayısının 1’e tümleyeni: 01110 2’ye tümleeni: 01111
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA (KISACA) 1. Çıkarma işlemini toplamaya çevirerek işlem yapmak için alttaki negatif sayının 2’ye tümleyeni alınır. 2. 2’ye tümleyeni alınan sayı ile pozitif sayı toplanır. 3. Toplama sonucunda elde varsa elde atılır. 4. Toplama sonucunda elde yoksa 2’ye tümleyeni alınır ve önüne (-) konulur.
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA (KISACA) 100101 37 - 010001 - 17 010001 sayısının 1’e tümleyeni: 101110 2’ye tümleyeni: 101111 100101 + 101111 1 010100 → elde olduğundan (elde=1) sonuç pozitiftir (010100)
TÜMLEYEN ARİTMETİĞİ İLE ÇIKARMA (KISACA) 100110 38 - 101001 - 41 101001 sayısının 1’e tümleyeni: 010110 2’ye tümleyeni: 010111 100110 + 010111 111101 → elde olmadığından sonuç negatiftir. 111101 sayısının 1’e tümleyeni: 000010 ve 2’ye tümleyeni: 000011 ve negatif (000011) 2 = (-3)10 Elde olduğundan (1) sonuç pozitif (010100)
İkilik Tabanda İşlemler: ÇARPMA Onluk tabanda tanımlanmış yöntemlerin benzerleri geçerlidir. Bunlar: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 Taban ile çarpma (2 ile) bir bit sola kayma olarak tanımlanır
İkilik Tabanda İşlemler: ÇARPMA ÖRNEK: %101 ve %10 sayılarının çarpımını hesaplayalım. 101 x 10 000 + 101 1010
İkilik Tabanda İşlemler: BÖLME Onluk tabanda tanımlanmış yöntemlerin benzerleri geçerlidir. Taban ile bölme (2 ile) bir bit sağa kayma olarak tanımlanır. ÖRNEK: 1010 : 11 veya 10 tabanında 10 : 3 - 0000 011 9 3 1010 1 - 110 100 - 11 1
Sekizli Sayı Düzeni Sekizli sayı düzeninde kullanılan rakamlar: 0 1 2 3 4 5 6 7 olarak tanımlıdır. Sekizli düzende verilen sayılar: 0o 7777 & 7777 77778 biçimlerinde gösterilirler
Sekizli Sayı Düzeni İkili sayı sisteminde ifade edilen sayıların büyük olması durumunda gösterimleri çok uzun olabilmektedir. Bu problemi gidermek üzere kullanılan yaklaşımlardan biri sekizli sayı sistemini kullanmaktır. Bunun avantajı ikili sistemle dönüşümlerin pratik oluşudur.
İkili/Sekizli Taban Dönüşümleri İkili sayı düzeninde verilen bir sayının bitleri 3lü gruplar halinde düzenlenir. Bu 3lü grupların her birinin ifade ettiği sayılar sağdan sola doğru yazıldıklarında ikili sayı düzeninden sekizli sayı düzenine dönüşüm gerçeklenir. Sekizliden ikili sayı düzenine dönüşüm de benzer adımlar ters sırada yapılarak elde edilir.
İkili/Sekizli Taban Dönüşümleri ÖRNEK: % 01011100101000 sayısını sekizli sayı düzeninde gösterelim. 0 1 0 1 1 1 00 1 0 1 000 => 4096 + 1024 + 512 + 256 + 32 + 8 = 5928 001 011 100 101 000 1 3 4 5 0 => 1x4096+3x512+4x64+5x8=5928
Onaltılı (Hexadecimal) Sayı Düzeni Onaltılı sayı düzeninde kullanılan rakamlar: 0 1 2 3 4 5 6 7 8 9 A B C D E F olarak tanımlıdır. Burada: A=10 B=11 C=12 D=13 E=14 F=15 değerlerini ifade ederler. Onaltılı düzende verilen sayılar: 0x FFFF (PIC işlemci notasyonu) h’FFFF’ (PIC işlemci notasyonu) $ FFFF FFFF16 veya FFFFh biçimlerinde gösterilirler
İkili/Onaltılı Taban Dönüşümleri İkili sayı düzeninde verilen bir sayının bitleri 4lü gruplar halinde düzenlenir. Bu 4lü grupların her birinin ifade ettiği sayılar sağdan sola doğru yazıldıklarında ikili sayı düzeninden onaltılı sayı düzenine dönüşüm gerçeklenir. Onaltılıdan ikili sayı düzenine dönüşüm de benzer adımlar ters sırada yapılarak elde edilir.
DERS 2 SAYI DÜZENLERİ SON – Kaynaklar: 1) An Introduction to Digital Signal Processors, Bruno Paillard 2) Mikroişlemciler Mikrobilgisayarlar, Eşref Adalı, ISBN 975-511-175-1