Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Mühendisliğine Giriş

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Mühendisliğine Giriş"— Sunum transkripti:

1 Bilgisayar Mühendisliğine Giriş
Yrd. Doç. Dr. Hüseyin POLAT

2 Bilgisayar Mühendisliğine Giriş
Konular Gerçek (Kesirli) Sayılar

3 Gerçek (Kesirli) Sayılar
Aritmetik işlemler sadece tam sayılar üzerinde yapılmaz. Kesirli sayılar üzerinde işlem yapılabilmesi için bunların bilgisayarlara tanıtılması gerekir. Sayılar bilgisayarda sabit uzunluktaki saklayıcı(register) denilen donanımlarda tutulur. Bu durumda kesirli kısmı ayıran nokta, ya her zaman sabit bir yere konacak (sabit noktalı gösterim -fixed point representation) ya da kayan nokta gösterimi - floating point representation kullanılacaktır. Bilgisayar matematiğinin kâğıt-kalem matematiğinden tümüyle farklı olduğu unutulmamalıdır.

4 Sabit Noktalı Gösterim -Fixed Point Representation :
Sabit noktalı gösterimde n bitlik alanda noktanın yeri belirlenmiş ve x bit anlamlı kısım için, geri kalan (n-x) bit ise noktadan sonraki kısım için ayrılmıştır.

5 Sabit Noktalı Gösterim - Fixed Point Representation
Bu durumda 8 bitin 4 biti sayının tam kısmını, kalan 4 biti noktadan sonraki kısmını ifade ederse , , şeklindeki sayılar gösterilebilir.

6 Sabit Noktalı Gösterim - Fixed Point Representation
Sabit bir bit pozisyonuna nokta konulması bazı sınırlamalar getirmektedir. Sabit noktalı sayı formatı, Çalışma hızını artırır. Donanım maliyetlerini önemli ölçüde azaltır. Fakat, nümerik hassasiyette önemli kayıplara sebep olmaktadır. Ancak kısıtlı bellek ve işlemci gücüne sahip bazı gömülü (embedded) sistemlerde sabit noktalı sayılar tercih edilir.

7 Sabit Noktalı Gösterim -Fixed Point için işlemler:
xx.xxx gibi bir kesirli sayının fixed point gösterim basamakları; 1. Noktadan önceki kısım tam sayı binary olarak yazılır 2. Noktadan sonraki kısımı (0.xxx) binary olarak yazmak için; a) Sayı, 1’den küçük olduğu için 2’ye bölerek değil, 2 ile çarparak bulunur. b) Çarpmada çıkan sayının, noktadan sonraki kısmının noktadan sonrası 0 olana kadar 2 ile çarpmaya devam edilir. c) Son olarak, çarpmaların sonucunda çıkan sayıların noktadan önceki kısımları yukarıdan aşağıya doğru yazılır. 3. Noktadan önceki ve sonraki kısımlar birleştirilir.

8 Sabit Noktalı Gösterim - Fixed Point Representation
Örnek : (6.75)10 ondalık sayısını Sabit Noktalı Gösterim (Fixed Point) şeklinde oluşturunuz. Virgülden önceki kısım (6)10 = (110)2 Virgülden sonraki kısım 0,75 binary olarak yazılırsa; 0.75 * 2 = => 0.5 → (1) 0.5 * 2 = 1.0 => 0 → (1) (0.75)10 = (11)2 olarak bulunur. Sonuç olarak (6.75)10 = (110.11)2 fixed point şeklinde gösterilir.

9 Sabit Noktalı Sayıların Ondalık Hale Dönüştürülmesi
Örnek : Sayı = biçimindeki sabit noktalı sayının ondalık olarak ifadesi. = 1 x 24+0 x 23+1 x 22+1 x 21+0 x 20+1 x x x 2-3 = =22.625 Doğrulama: Sayı= nx2-m n: n bitlik sayının integer değeri m : noktadan sonraki bit sayısı ( )2=(181)10 , olduğundan n = m = 3 Sayı= n x 2-m Sayı = 181 x 2-3 Sayı = 181 / 8 Sayı = şeklinde ifade edilir.

10 Sabit Noktalı Gösterim - Fixed Point Representation
0 - 7 aralığındaki bir tamsayıyı temsil etmek için kullanılabilecek üç tam sayı biti vardır. Böylece, işaret biti ve üç tamsayı bitinin kombinasyonu, -7 ila +7 aralığında pozitif ve negatif tamsayıları temsil etmemizi sağlar. 8 bitlik alanın kesirli (fractional) bölümünde, ilk kesirli bit 1/2 = 0.5'i temsil etmek için kullanılır; ikinci kesirli bit 0.5 / 2 = 0.25'i temsil etmek için kullanılır; üçüncü kesirli bit, 0.25 / 2 = 0.125'u temsil etmek için kullanılır ve dördüncü kesirli bit, / 2 = 'i temsil etmek için kullanılır. Böylece, dört bitlik alan, yukarıda gösterildiği gibi 0,0 ile 0,9375 aralığında kesirli değerleri temsil etmemizi sağlar (tabii ki daha fazla kesirli bitler daha kesin kesirli değerleri temsil etmemize izin verir)

11 Sabit Noktalı Gösterim - Fixed Point Representation
Decimal Binary

12 ÖDEV Sabit Noktalı Sayılarda Dört İşlem Toplama Çıkarma Çarpma Bölme

13 Kayan Nokta Gösterimi - Floating Point Representation:
Bilgisayar uygulamalarında büyük çoğunlukla Kayan Noktalı Sayılar (Floating Point) kullanılmaktadır. Kayan noktalı sayılar, sabit noktalı sayı formatına göre daha geniş sayı aralığına sahiptir. Gelişmiş işlemcilerde noktadan sonraki sayılar için matematiksel işlem yapan Kayan Nokta Ünitesi (Floating Point Unit-FPU) bulunmaktadır. Bu ünite tamsayı olmayan floating point (kayan nokta) hesaplamalarından sorumludur.

14 Kayan Nokta Gösterimi - Floating Point Representation:
Kayan noktalı sayılar tam sayı işlemlerden daha yavaştır. Bilgisayar performanslarının karşılaştırılmasında özellikle bilimsel bilgisayarlarda, kayan noktalı sayılar üzerindeki işlem hızı önemlidir. Kayan nokta (floating point ) hesaplamalarında ölçüm için FLOPS (Floating Point Operation Per Second) kullanılır. FLOPS, bilgisayar sistemlerinde, CPU (Central Processing Unit) ve GPU (Graphic Processing Unit) performanslarını ölçmede kullanılır. FLOPS saniye başına kayan nokta işlemidir. Yani saniyede kaç adet kesirli sayının aritmetik işleme tabi tutulduğunu gösterir.

15 Kayan Nokta Gösterimi - Floating Point Representation:
Bilinen gösterim şekillerinde n bitlik kapasiteyle gösterilebilecek sayı aralığı bellidir. İşaretsiz gösterimde; 0 ile 2n, bire tümleyen şeklindeki gösterimde; -2n-1+1 ile 2n-1, ikiye tümleyen gösteriminde ise; -2n-1 ile 2n-1 arasındaki sayıları göstermek mümkündür.

16 Kayan Nokta Gösterimi - Floating Point Representation:
Bu gösterim şekillerinde çok büyük ve çok küçük değerlerin ifade edilmesi için maliyetli donanıma ihtiyaç duyulur. Örneğin sabit noktalı gösterimde n bitlik alanda noktanın yeri belirlenmiş ve x bit anlamlı kısım için, geri kalan (n-x) bit ise virgülden sonraki kısım için ayrılmıştır. Bu durumda 8 bitin 5 biti sayının tam kısmını, kalan 3 biti virgülden sonraki kısmını ifade ederse şeklindeki sayılar gösterilebilir.

17 Kayan Nokta Gösterimi - Floating Point Representation:
Kayan noktalı gösterimde ise daha geniş aralıktaki sayılar maliyeti daha düşük donanım ile üretilebilir. Yani 8 bitlik alanda şeklinde virgülün herhangi bir aralığa gelerek oluşturacağı bütün kombinasyonları ifade etmek mümkündür.

18 Kayan Nokta Gösterimi - Floating Point Representation :
Kayan noktalı sayılar işaret(sign), mantis(mantissa), taban(base) ve üst(exponent) olarak 4 kısım ile ifade edilir. Kayan noktalı sayı temsili X =  mantis x tabanüst şeklindedir. işaret bitinde (+) değer 0, (-) değer 1 ile temsil edilir. Kayan noktalı sayının gösteriminde anlamlı kısmın(mantis) bitleri fazla olursa sayının duyarlılığı, üst bitleri fazla olursa gösterilebilecek sayı aralığı artar. = x 103 = 0.28 x 10-2 = x 23

19 Kayan Nokta Gösterimi - Floating Point Representation :
Bilimsel gösterimde sayılar, virgülün solunda 0'dan farklı bir basamak kalacak şekilde 10'un kuvvetiyle çarpım halinde gösterilir. Örneğin; 5647 sayısı, 5.647x103 ve sayısı 3.456x10-4 şeklinde yazılır. Bu formatta 10'un kuvveti değiştikçe çarpan sayının tam sayı kısmını belirleyen nokta, kuvvetin değişme yönüne uygun olarak kaydırılır. Bu kaydırma işlemine olağanlaştırma (normalizasyon) denir. Kayan noktalı sayılar sistemi de bu temel prensibe dayalı bir sisteme sahiptir. Örneğin sayısı x 103 şeklinde gösterilir. Bu gösterimde mantis, 10 taban, 3 ise üst olarak adlandırılır.

20 Kayan Nokta Gösterimi - Floating Point Representation :

21 Kayan Nokta Gösterimi - Floating Point Representation :
Kayan noktalı sayılar, ikilik düzendeki sayıların bilimsel gösterimle gösterilmesidir. Kayan noktalı sayılar işaret, mantis ve üst olmak üzere üç kısımdan oluşur. onluk sistemde düşünürsek: 13 sayısı, 13 = 13.0x100 = 1.3x101 = 0.13x102 olarak ifade edilebilir. İkilik sistemde düşünürsek: 1310 = 11012x20 = x21 = x22 = x23 = x24

22 Kayan Nokta Gösterimi - Floating Point Representation :
8 bitlik bir kayan nokta gösteriminde, en soldaki bit, işaret biti ve bunu takiben 3 bitlik bir üst gösterimi ve ardından 4 bitlik bir mantis söz konusudur. Normalize edilmiş bir kayan noktalı gösterimde, mantisin en önemli biti (solundaki bit) "1" olmalıdır ve kayan noktasının mantisin solunda olduğu kabul edilir. Üst değeri de eksi olabilir, 3 bitlik alanın ilk biti işaret bilgisi tutmaktadır. Geriye kalan 2 bit, üst bilgisi tutabilir. Dolaysıyla, sayının en fazla 3. üstüne kadar olan değer tutulabilir. Böylece 8 bit floating point gösterimde üst için kaydırma(sapma) değeri = 3 olarak hesaplanır. X XXX XXXX İşaret (Sign) 1 bit Üst (Exponent) 3 bit Mantis (Mantissa) 4 bit

23 Kayan Nokta Gösterimi - Floating Point Representation :
Ondalık sayısını 8-bit floating point formatına dönüştürünüz. Tam sayı kısmı, 210 = 102. Kesirli kısım: × 2 = × 2 = × 2 = = , ve = = × 20 Normalize: × 20 = × 21 Mantis: 0101 Üst: = 4 = 1002 İşaret biti 0 Sonuç 8 bit floating point gösterim

24 Kayan Nokta Gösterimi - Floating Point Representation :
Ondalık sayısını 8-bit floating point formatına dönüştürünüz. Tam kısım : 410 = 1002 Kesirli kısım : 0.75 × 2 = × 2 = = normalize: = × 22 mantis : 0011 üst : = 5 = 1012 işaret biti : 1 Sonuç 8 bit floating point gösterim

25 Kayan Nokta Gösterimi - Floating Point Representation :
ondalık sayısının 8 bit floating point gösterimini oluşturunuz × 2 = × 2 = × 2 = × 2 = × 2 = = Normalize: = × 2-2 Mantis: 1010, üst: = 1 = 0012, işaret biti ondalık sayısının 8 bit floating point gösterimi

26 Kayan Nokta Gösterimi - Floating Point Representation :
Ondalık 1.7 sayısını 8-bit floating point formatına dönüştürünüz. Tam sayı kısmı, 110 = 12 Kesirli kısım: 0.7 × 2 = × 2 = × 2 = × 2 = × 2 = … Sürecin sonsuza kadar devam edebileceği görülüyor. Dört bitlik olarak gelebileceğimiz en yakın nokta .1011'dir. Yapabileceğimiz en iyi sekiz bitlik sayı normalize: = ( × 20)2 mantis : 1011 üst : = 3 = 0112 işaret biti : 0 SONUÇ

27 Kayan Nokta Gösterimi - Floating Point Representation :
olarak verilen 8-bit floating point gösterimli sayının ondalık değeri nedir? Mantis: Üst: 1102 = 610 ; 6 − 3 = 3 De-normalize: × 23 = Dönüşüm: = 1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 = = İşaret: negatif SONUÇ :

28 Kayan Nokta Gösterimi - Floating Point Representation :
Verilen 8 bitlik floating point gösterimdeki sayıların ondalık değerlerinin doğruluğunu ispatlayınız. 8 bit floating point: ondalık değer: 8 bit floating point: ondalık değer: -4.75

29 Kayan Nokta Gösterimi - Floating Point Representation :
Kayan noktalı sayıların donanıma bağımlı olmadan uyumlu bir gösterime sahip olması için “ANSI/IEEE 754” standardı geliştirilmiştir. Bu standarda göre kayan noktalı sayıların gösterimi; tek duyarlı -single precision (32 bit) çift duyarlı – double precision (64 bit) geniş duyarlı -extended precision (80 bit) olmak üzere üç şekilde belirlenmiştir.

30 Kayan Nokta Gösterimi - Floating Point Representation :
IEEE standardındaki kayan noktalı sayıların bazı özellikleri Özellik Tek Duyarlı Çift Duyarlı Toplam bit sayısı Mantis saklı bit saklı bit Üst bit sayısı Üst sapma En küçük değer 1.2x x10-308 En büyük değer 3.4x x10308

31 Kayan Nokta Gösterimi - Floating Point Representation :
Tek duyarlı (single precision) gösterimde; 32 bitin 1 biti işaret için, 8 biti üst için ve 23 biti de anlamlı kısmın (mantis) gösterimi için kullanılmaktadır. İşaret (sign) : Bu bit 1 olduğu zaman, sayı – değerdedir. Şayet 0 veya artı değerde bir sayı ise, bu bit 0 olur. Üst (Exponent): sayının üst değeri bu alanda tutulur. Buna göre bir sayının 2’nin kaçıncı kuvveti ile çarpılabileceğini gösterir. Üst değeri de eksi olabilir, 8 bitlik alanın ilk biti işaret bilgisi tutmaktadır. Geriye kalan 7 bit, üst bilgisi tutabilir. Dolaysıyla, sayının en fazla 127. üstüne kadar olan değer tutulabilir. Böylece Tek duyarlı (single precision) gösterimde üst için kaydırma(sapma) değeri = 127 olarak hesaplanır. (27 =128 olduğunu ve bu bilginin ilk değerinin 0 için ayrıldığını dolayısıyla, sayımızın 0 – 127 arasında olacağını hatırlayınız). Mantis-(Mantissa) : 23 bit alan kaplayan kısımdır. Örneğin x 2-4 sayısı için mantis kısmı 101 olacaktır. X XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX İşaret (Sign) 1 bit Üst (Exponent) 8 bit Mantis (Mantissa) 23 bit

32 Kayan Nokta Gösterimi - Floating Point Representation :
(6.75)10 sayının fixed point gösterimi (110.11)2 şeklindedir. Bu sayıyı Tek Duyarlı Kayan noktalı (Single Precision Floating Point) gösterimde temsil ediniz. Floating pointe geçmek için, noktadan önce tek basamak bırakılmalı. Bunun için nokta kaydırılır. Normalizasyon: (110.11)2  ( x 22)2 olur. Nokta iki basamak kaydırıldı. Noktadan sonrası da mantis kısmı olarak alınacak. Üst değerinin saptırılmış hali = kaydırılan basamak sayısı = = (129)10 Üst = (129)10 = ( )2 olur. İşaret biti : 0 (Pozitif) Mantis : (1011)2 Mantis kısmı 23 bite tamamlayacak şekilde sağ tarafına 0 eklenirse. Sonuç : şeklinde olur.

33 Kayan Nokta Gösterimi - Floating Point Representation :
ÖRNEK : sayısını Tek Duyarlı Kayan Noktalı (Single Precision Floating Point) ile gösteriniz. 6 → (110) ×2 = 0.75  (0) 0.75 ×2 = 1.5  (1) 0.5 ×2 = 1.0  (1) = (0.011)2 → = ( )2 Sayı normalize edilirse : = x 22 iki basamak kaydırıldı. Sayı > 0 olduğundan işaret biti: 0 Sayının üst değerinin saptırılmış hali: = 129 → 12910= Mantis (Anlamlı kısım) : Sayı son olarak : şeklinde Tek Duyarlı Kayan Noktalı sayı (Single Precision Floating Point) olarak ifade edilir.

34 Tek Duyarlı Gösterimdeki Bir Sayının Onluk Düzendeki Değerinin Bulunması
Pratik Yöntem : Üst: = 13610; 136 − 127 = 9 Denormalize: × 29 = Dönüşüm: =

35 Tek Duyarlı Gösterimdeki Bir Sayının Onluk Düzendeki Değerinin Bulunması
Üst: = 12410; 124 − 127 = -3 Denormalize: × 2-3 = =

36 Tek Duyarlı Gösterimdeki Bir Sayının Onluk Düzendeki Değerinin Bulunması
v = s ×2e×m s = +1 (işaret biti 0 olduğunda pozitif sayılar ve +0) s = −1 (işaret biti 1 olduğunda negatif sayılar ve −0) e = exponent− 127 m = 1.mantis, 1 ≤ m < 2 Mantis (anlamlı kısım) sabit bir ‘1’ ile başlar ve bu bite saklı (hidden) bit denir. Bu değer bellekte tutulmaz. Örnek : s = +1 e = ( )2 – (127)10 = ( )10 =(2)10 m = ( )2 = ( )10 = ( )10 v = +1 x 22 x = 6.375

37 Tek Duyarlı Gösterimdeki Bir Sayının Onluk Düzendeki Değerinin Bulunması
Örnek : Yukarıda verilen single precision floating point sayının ondalık değeri nedir? s=+1 e=( )2-(127)10 =( )10 =1 m=(1.0)2= (1)10 v = s ×2e×m =+1 x 21 x 1 =2

38 ÖDEV ondalık değer : -6.5 Yukarıda verilen single precision floating point sayının ondalık değerinin doğru olduğunu ispatlayınız.

39 Kayan Nokta Gösterimi - Floating Point Representation :
Çift duyarlı gösterimde (double precision) : Çift duyarlı gösterimde 64 bitin 1 biti işaret için, 11 biti üst için ve 52 biti de anlamlı kısmın gösterimi için kullanılmaktadır. Anlamlı kısımda çok bit kullanmak duyarlılığı/hassasiyeti artırırken, üs kısımda çok bit kullanımı aralığı artırır. Bu gösterimde üs için sapma değeri =1023 olarak hesaplanır. X XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX İşaret (Sign) 1 bit Üst (Exponent) 11 bit Mantis (Mantissa) 52 bit

40 Çift duyarlı Kayan Noktalı gösterim (Double Precision Floating Point)
ÖRNEK : sayısını Çift Duyarlı Kayan Noktalı (Double Precision Floating Point) ile gösteriniz. 6 → (110) ×2 = 0.75  (0) 0.75 ×2 = 1.5  (1) 0.5 ×2 = 1.0  (1) = (0.011)2 → = ( )2 Sayı normalize edilirse : = x 22 iki basamak kaydırıldı. Sayı > 0 olduğundan işaret biti: 0 Sayının üst değerinin saptırılmış hali: = 1025 → = Mantis (Anlamlı kısım) : Sayı son olarak : şeklinde Çift Duyarlı Kayan Noktalı sayı (Double Precision Floating Point) olarak ifade edilir.

41 Ödev Kayan Noktalı Sayılarda Dört İşlem Toplama Çıkarma Çarpma Bölme


"Bilgisayar Mühendisliğine Giriş" indir ppt

Benzer bir sunumlar


Google Reklamları