Bilgisayar Mühendisliğine Giriş Yrd. Doç. Dr. Hüseyin POLAT
Bilgisayar Mühendisliğine Giriş Hafta_3 Konular Sayı Sistemleri Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Sayı Sistemlerinde Hesaplama
Sayı Sistemleri Bir sayı sistemini ‘S’, sayı sisteminde kullanılan rakam/karakterleri ‘d’ ve sayı tabanı ‘R’ ile gösterilirse; S= dnRn +dn-1Rn-1+................+d2R2+d1R1+d0R0 eşitliği elde edilir. Formülde dn-d0; sayı değerlerini, Rn-R0 ise; köke bağlı olarak oluşan basamak değerlerini temsil eder.
Sayı Sistemleri Onlu (Decimal) Sayı Sistemi onluk sayı sisteminde on değişik rakam vardır bunlar; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9’ dur. dn- d0 sayı değerleri; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 R; taban değeri olan 10 ile gösterilir. Bu durumda daha önce ifade edilen denklem; D = dn10n+dn-110n-1+.......+d2102+d1101+d0100 şeklini alır. Örneğin 1985 = 1.103+9.102+8.101+5.100 = 1000+900+80+5 dnRn +dn-1Rn-1+................+d2R2+d1R1+d0R0
Sayı Sistemleri İkili (Binary) Sayı Sistemi ikili sayı sisteminde iki değişik rakam vardır. dn- d0 sayı değerleri ; 0 ve 1 R; taban değeri olan 2 ile gösterilir. İkili sayı sisteminde her bir basamak ‘Bit’ olarak (Binary Digit) adlandırılır. En sağdaki basamak, En Düşük Anlamlı Bit - DAB (Least Significant Bit-LSB), En soldaki basamak, En Yüksek Anlamlı Bit-YAB (Most Significant Bit-MSB) İkili sayı sistemindeki basamak değerleri; B = dn2n +dn-12n-1+.... +d222 +d121+d020 eşitliği ile ifade edilebilir.
Sayı Sistemleri İkili (Binary) Sayı Sistemi Örnek olarak (101101101)2 ikili sayısının basamak değerleri; B = 1.28 + 0.27 + 1.26 + 1.25 + 0.24 + 1.23 + 1.22 + 0.21 + 1.20 Bu ikili sayı onluk sistemde; B = 256+64+32+8+4+1 = (365)10 sayısına eşittir.
Sayı Sistemleri Sekizli (Octal) Sayı Sistemi Sekizli sayı sisteminde sekiz değişik rakam vardır. dn- d0 sayı değerleri ; 0, 1, 2, 3, 4, 5, 6, 7 R; taban değeri olan 8 ile gösterilir. O = dn8n+dn-18n-1+............+d383+d282+d181+d080 formülü ile ifade edilir.
Sayı Sistemleri Sekizli (Octal) Sayı Sistemi Örnek olarak (555)8 sekizli sayısının basamak değerleri; O = 5.82 + 5.81 + 5.80 Bu sekizli sayı onluk sistemde; O = 320+40+5 = (365)10 sayısına eşittir.
Sayı Sistemleri Onaltılık (Hexadecimal) Sayı Sistemi Onaltılı sayı sisteminde onaltı değişik rakam vardır. dn- d0 sayı değerleri ; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F R; taban değeri olan 16 ile gösterilir. Bu sayı sistemindeki sayıların genel denklemi; H = dn16n+dn-116n-1+.......+d1161+d0160 şeklinde oluşur.
Sayı Sistemleri Onaltılık (Hexadecimal) Sayı Sistemi Örnek olarak (16D)16 onaltılı sayısının basamak değerleri; H = 1.162 + 6.161 + D.160 = 1.162 + 6.161 + 13.160 Bu onaltılı sayı onluk sistemde; H = 256+96+13 = (365)10 sayısına eşittir.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Onlu sayıların İkili Sayılara Dönüşümü: Onlu bir sayı ikili bir sayıya dönüştürülecekse, onlu sayı sürekli 2’ye bölünür. Örnek: (39)10 sayısını ikili sayı sistemine çevirelim. Bölünen Bölüm Kalan 39/2 19 1 LSB (Least Significant Bit) En küçük değerlikli sayı 19/2 9 1 9/2 4 1 yazım yönü 4/2 2 0 2/2 1 0 1→ → → → 1 MSB (Most Significant Bit) En büyük değerlikli sayı Sonuç olarak; (39)10=(100111)2 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (1271)10 sayısını ikili sayıya dönüştürelim. İşlem Bölüm Kalan 1271 / 2 635 1 635 / 2 317 1 317 / 2 158 1 158 / 2 79 0 79 / 2 39 1 39 / 2 19 1 19 / 2 9 1 9 / 2 4 1 4 / 2 2 0 2 / 2 1 0 1 1 Sonuç olarak; (1271)10 = (10011110111)2 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Kesirli onlu sayılar ikili sayılara dönüştürülürken kesirli kısma kadar olan bölüm için normal çevirim yöntemi uygulanır, daha sonra kesir kısmı 2 ile çarpılır. Çarpım sonucunda elde edilen sayının tam kısmı kaydedilerek, kesirli kısım 2 ile yeniden çarpılır. Bu işleme kesirli kısım ‘0’ değerine (veya 0’a çok yakın bir değere) ulaşıncaya kadar devam edilir. Örnek: (0.65)10 sayısını ikili sayı sistemine çevirelim. Tam Kısım 0.65 * 2 = 1.30 1 a-1 0.30 * 2 = 0.60 0 a-2 Sıralama yönü 0.60 * 2 = 1.20 1 a-3 0.20 Sonuç; (0.65)10 (0.101)2 Bazen kesirli kısım 0 değerine varmayabilir. Bu gibi durumlarda işlem sonlandırılarak yuvarlatma yapılabilir.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (0.317)10 sayısını 2 tabanına göre yazınız. 2 ile çarpma işlemi Tamsayı kısmı 0.317 x 2 = 0.634 0 0.634 x 2 = 1.268 1 0.268 x 2 = 0.536 0 0.536 x 2 = 1.072 1 0.072 x 2 = 0.144 0 0.144 x 2 = 0.288 0 0.288 x 2 = 0.576 0 0.576 x 2 = 1.152 1 0.152 x 2 = 0.304 0 ... ... (0.317)10 = (0.010100010...)2 dir.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (41.6875)10 sayısını ikili sayıya çevirelim. Tam sayı ve kesirli kısmı bulunan bir sayıyı ikili sayıya çevirmek için, tam sayı ve kesir kısımları ayrı-ayrı dönüştürülür ve bulunan sayılar birleştirilir. Önce tam sayı kısmını çevirelim: İşlem Bölüm Kalan 41 / 2 20 1 20 / 2 10 0 10 / 2 5 0 5 / 2 2 1 2 / 2 1 0 1 1 (41)10 = (101001)2 Daha sonra kesirli sayı kısmının çevirimini yapalım; Tamsayı 0.6875 * 2 = 1.3750 1 0.3750 * 2 = 0.7500 0 0.7500 * 2 = 1.5000 1 0.5000 * 2 = 1.0000 1 (0.6875)10 = (1011)2 Sonuçta, iki sayıyı birleştirirsek; (41.6875)10 = (101001.1011)2 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (8,875)10 = (1000,111)2 olduğunu ispat ediniz.
Kesirli İkili Sayıların Ondalık Sayılara Dönüştürülmesi Kesirli ikili sayıları onlu sayılara dönüştürmek için kesirli kısma kadar olan kısmı normal analiz yöntemini kullanarak dönüştürürken kesirli kısmın ağırlığı 0'ı takip eden negatif sayılar olarak belirlenir. Örnek: (111.101)2 = (?)10 (111.101 )2 = 1x22+1x21+1x20+1x2-1+0x2-2+1x2-3 (111.101 )2 = 1x4+1x2+1x1+1x 1/2+0x 1/4+1x 1/8 (111.101 )2 = 4+2+1+0,5+0+0,125 (111.101) 2 = (7.625)10
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Onlu Sayıların Sekizli Sayılara Dönüştürülmesi : Onlu bir sayı sekizli bir sayıya dönüştürülecekse, onlu sayı sürekli 8’e bölünür. Örnek: (153)10 sayısını sekizli sisteme çevirelim. İşlem Bölüm Kalan 153 / 8 19 1 19 / 8 2 3 Sıralama yönü 2 2 İşlemler sonucunda, (153)10 = (231)8 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (0.513)10 sayısını sekizli sayı sistemine çevirelim. Verilen sayı devamlı 8 ile çarpılarak oluşan tam sayılar yazılır. Çarpım sonucunda elde edilen sayının tam kısmı kaydedilerek, kesirli kısım 8 ile yeniden çarpılır. Bu isleme kesirli kısım ‘0’ değerine (veya 0’a çok yakın bir değere) ulaşıncaya kadar devam edilir. Oluşan tam sayı 0.513 x 8 = 4.104 4 0.104 x 8 = 0.832 0 Sıralama yönü 0.832 x 8 = 6.656 6 0.656 x 8 = 5.248 5 0.248 x 8 = 1.984 1 Sonuç olarak; (0.513)10 (0.40651)8 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Ödev: (153.513)10 sayısının (231.40651)8 sayısına eşit olduğunu ispatlayınız.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Onlu Sistemdeki Sayıların Onaltılı Sayılara Dönüştürülmesi: Onlu sistemdeki bir sayıyı onaltılık sisteme dönüştürmek için, onluk sistemin ikili ve sekizli sisteme çevrilmesindeki yöntem uygulanır. Ancak onaltılık sistemde taban ‘16’ olduğundan, 16’ya bölme ve kalanı yazma şeklinde işlem yapılır. Örnek: (214)10 sayısını onaltılık sayı sistemine çevirelim. İşlem Bölüm Kalan 214 / 16 13 6 6 13 / 16 0 13 D Sonuç olarak; (214)10 = (D6)16 eşitliği yazılabilir.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (423)10 = (?)16 dönüşümünü gerçekleştirelim. İşlem Bölüm Kalan 423 / 16 26 7 26 / 16 1 10→A 1 1 Bölme işlemi sonucunda elde edilen ‘10’ sayısının onaltılı sistemdeki karşılığı olan ‘A’ değerinin yazılması ile; (423)10 = (1A7)16 eşitliği elde edilir.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Örnek: (0.975)10 sayısını onaltılık sisteme çevirelim. kesirli sayının 16 ile çarpımından oluşan tam sayı kısmının alınıp, yeni sayının kesirli kısmının çarpılmaya devam etmesi şeklinde yapılır. Oluşan sayı 0.975x16 = 15.600 15→ F 0.600x16 = 9.600 9 Sonuç olarak; (0.975)10 = (0.F99)16 eşitliği bulunur.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri Ödev: (214.375)10 = (?)16 dönüşümünü gerçekleştiriniz.
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri İkili-Sekizli Dönüşümü İkili sayı sekizliye çevirirken, ikili sayı sağdan başlayarak sola doğru 3’er 3’er gruplanır. Her grubun sekizli karşılığı bulunur. (11101001)2=(?)8 (011 101 001)2= (351)8 3 5 1
Sayı Sistemlerinin Birbirlerine Dönüştürülmeleri İkili-Onaltılı Dönüşümü İkili sayı onaltılıya çevirirken, ikili sayı sağdan başlayarak sola doğru 4’er 4er gruplanır. Her grubun onaltılı karşılığı bulunur. (11111010011101010010)2=(?)16 (1111 1010 0111 0101 0010)2= (F A 7 5 2)16 F A 7 5 2
Sayı Sistemlerinde Hesaplama Tüm sayı sistemlerinde sayılarda işaret kullanılabilir. Yani pozitif ve negatif sayılarla hesaplama yapılabilir. Bu gerçek göz önünde bulundurularak, onluk sayılarda hesaplama yaparken aşağıdaki ilişkiler kullanılabilir. Bu ilişkiler bütün sayı sistemleri için geçerlidir. a) +a + (+b) = a + b b) +a + (-b) = a - b c) +a - (+b) = a - b d) +a - (-b) = a + b İkili, sekizli ve onaltılı sistemlerdeki hesaplamalarda da 4 temel işlem (toplama, çıkarma, çarpma, bölme) kullanılır.
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Toplama İkili sayı sistemindeki toplama kuralları aşağıdaki şekilde sıralanabilir. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 veya 1 + 1 = 0 elde 1 (C=1) 1+1+1=11 1+1+1+1=100 ‘1 + 1’ toplama işleminde sonuç olarak ‘0’ ve bir soldaki basamağa aktarılmak üzere ‘elde 1’ ortaya çıkar.
Sayı Sistemlerinde Hesaplama Örnek: İkili sayı sistemine göre aşağıdaki toplama işlemlerini gerçekleştirelim. 10 101 101 + 01 + 010 + 011 11 111 1000
Sayı Sistemlerinde Hesaplama Örnek : Aşağıda verilen toplama işlemlerini yapalım. 1110 1101 111011 + 0110 1111 011011 10100 + 1011 110101 100111 + 010010 10011101
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Çarpma : Çarpmanın temel kuralları 0 x 0 = 0 1 x 0 = 0 0 x 1 = 0 1 x 1 = 1 Çarpma işlemi ondalık sistemde olduğu şekilde yapılır ve birden fazla basamaklı sayılarda ara çarpımlar sola doğru kaydırılır. 111 1011 x 101 x 110 111 0000 000 1011 + 111 + 1011 100011 1000010
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Çarpma : Örnek : (1011)2 * (101)2 ve (10111)2 * (110)2 islemlerini yapalım. 1011 10111 x 101 x 110 1011 00000 0000 10111 + 1011 + 10111 110111 10001010
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Çıkarma İkili sayılarda çıkarma işleminde aşağıdaki kurallar uygulanır: 0 - 0 = 0 1 - 1 = 0 1 - 0 = 1 0 - 1 = 1 →b (b=borç 1), 10 - 1 = 1 0 - 1 = 1 → b ifadesinde b (borrow-borç) soldaki haneden borç alınacağını gösterir. Bu durumda, borç alınan hanedeki sayı 1 ise 0, 0 ise 1 olur. (Sol basamaktan alınan 1, sağ basamağa iki adet 1 olarak geçer.) Bu kuralların uygulandığı yöntem, ‘doğrudan çıkarma yöntemi’ olarak adlandırılır. Ana sayının çıkarılan sayıdan büyük olması durumunda, yani sonucun ‘0’ veya 0’dan büyük olması durumunda doğrudan çıkarma yöntemi kullanılabilir. Çıkarma işlemi sonucunun 0’dan küçük olması durumunda doğrudan çıkarma yöntemi kullanılamaz !!!
Sayı Sistemlerinde Hesaplama Örnek : Aşağıdaki çıkarma işlemlerini doğrudan çıkarma yöntemi ile yapalım. 10110 10110 101110 -01010 - 1101 -10011 01100 1001 11011
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Çıkarma: Çıkarma işlemi sonucunun 0’dan küçük olması durumunda doğrudan çıkarma yöntemi kullanılamaz !!! Bu nedenle, sonucun 0’dan küçük çıktığı işlemleri gerçekleştirmek ve bilgisayarlarda mantıksal uyumlaştırma işlemini kolaylaştırmak amacıyla, ‘tümleyen aritmetiğine göre çıkarma’ olarak adlandırılan çıkarma yöntemi kullanılır. Tümleyen aritmetiği ile çıkarma yönteminde tüm çıkarma işlemleri yapılabilmekte ve bu nedenle bilgisayarlarda bu yöntem kullanılmaktadır.
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Bölme : Bölme işleminde, bölünenden bölenin çıkarılmasına birer basamak sağa kaydırılarak sonuç sıfır olana kadar devam edilir. Yapılan işlem aşamalarında bölünenden bölen çıkıyorsa çıkarma var denir ve bölüm 1 olur. Eğer bölünenden bölen çıkmıyorsa çıkarma yok denir ve bölüm 0 olur.
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Bölme : 101010 / 110 = ? (42 / 6 )10 101010 110 ------------- çıkarma yok 0 ------------ çıkarma var 1 01001 ------------- çıkarma var 1 Yazım sırası 00110 -------------- çıkarma var 1 0000 Sonuç : (111)2 = (7)10
Sayı Sistemlerinde Hesaplama İkili Sayı Sisteminde Bölme : 110111 / 101 =? (55 /5)10 110111 101 ---------------- çıkarma var 1 0011 --------------- çıkarma yok 0 00111 ---------------- çıkarma var 1 0101 ----------------- çıkarma var 1 000 Sonuç : (1011)2 = (11)10
Sayı Sistemlerinde Hesaplama Örnek : (1101)2 (11)2 = (?)2 işlemini yapalım.
Sayı Sistemlerinde Hesaplama Örnek : (110011)2 (101)2 = (?)2 işlemini yapalım. Sonuç: (1010,001)2
Sayı Sistemlerinde Hesaplama Örnek : (1110)2 (10)2 = (?)2 işlemini yapalım. 1110 10 10 111 0110 → çıkarma var 1 10 0010 → çıkarma var 1 00 → çıkarma var 1
Örnek : (110101)2 (111)2 = (?)2 işlemini yapalım.
Örnek : (11100110)2 (110)2 = (?)2 işlemini yapalım.
Örnek : (10110)2 (100)2 =. ve (1111101)2 (101)2 = Örnek : (10110)2 (100)2 =? ve (1111101)2 (101)2 =? işlemlerini yapalım.
Aşağıdaki ikili bölme işlemlerini inceleyiniz.
Sekizli Sayı Sisteminde Toplama İşlemi
Sekizli Sayı Sisteminde Çıkarma İşlemi
Onaltılı Sayı Sisteminde Toplama İşlemi
Onaltılı Sayı Sisteminde Çıkarma İşlemi