Algoritmalar ve Programlama. DERS - 2 Yrd. Doç. Dr. Ahmet SERBES

Benzer belgeler
Floating Point (Kayan Noktalı Sayılar)

DERS NOTLARI. Yard. Doç. Dr. Namık AKÇAY İstanbul Üniversitesi Fen Fakültesi

BLM1011 Bilgisayar Bilimlerine Giriş I

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

2. SAYI SİSTEMLERİ VE KODLAR

Bilgisayarların Gelişimi

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Bilgisayar Bilimlerine Giriş 1

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com

2. SAYI SİSTEMLERİ 2. SAYI SİSTEMLERİ

SAYI SİSTEMLERİ. Sayı Sistemleri için Genel Tanım

Bilgisayar Mimarisi. Veri (DATA) Veri nedir? Veri bazı fiziksel niceliklerin ham ifadesidir. Bilgi verinin belli bir yapıdaki şeklidir.

SAYISAL ELEKTRONİK DERS NOTLARI:

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

OCTAL (SEKİZLİ) SAYI SİSTEMİ:

1. Bölüm Sayı Sistemleri

n. basamak basamak 3. basamak 2. basamak 1. basamak Üstel değer 10 n Ağırlık 10 n-1...

Sayı Sistemleri. Onluk, İkilik, Sekizlik ve Onaltılık sistemler Dönüşümler Tümleyen aritmetiği

RASYONEL SAYILAR. ÖRNEK: Aşağıda verilen eşitliklerde verilmeyen harflere karşılık gelen tamsayıları bulunuz. RASYONEL SAYILAR A =?

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar

Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

ALGORİTMA VE PROGRAMLAMA II

SAYISAL DEVRELER. İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları

Elektroniğe Giriş 1.1

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

Algoritma ve Akış Diyagramları

SAYISAL ANALİZ. 2. Hafta SAYISAL ANALİZDE HATA KAVRAMI VE HATA TÜRLERİ

BLM221 MANTIK DEVRELERİ

Her bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

Floating Point (Kayan Noktalı Sayılar)

BLM221 MANTIK DEVRELERİ

Bilgi ve Bilgi Sistemleri. Bilgisayar Mühendisliğine Giriş 1

SAYILAR SAYI KÜMELERİ

SAYILAR SAYI KÜMELERİ

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.

Rakam : Sayıları yazmaya yarayan sembollere rakam denir.

MANTIK DEVRELERİ HALL, 2002) (SAYISAL TASARIM, ÇEVİRİ, LITERATUR YAYINCILIK) DIGITAL DESIGN PRICIPLES & PRACTICES (3. EDITION, PRENTICE HALL, 2001)

TEMEL KAVRAMLAR. SAYI KÜMELERİ 1. Doğal Sayılar

Mikrobilgisayarda Aritmetik

SONLU KELĐME UZUNLUKLU ARĐTMETĐK

Temel Kavramlar 1 Doğal sayılar: N = {0, 1, 2, 3,.,n, n+1,..} kümesinin her bir elamanına doğal sayı denir ve N ile gösterilir.

ÜNİTE 1: TEMEL KAVRAMLAR

Hatalar ve Bilgisayar Aritmetiği

BÖLÜM 2 SAYI SĐSTEMLERĐ (NUMBER SYSTEMS)

Yrd. Doç. Dr. Caner ÖZCAN

SAYI SİSTEMLERİ ve BOOLE CEBİRİ 1+1=1 ÖĞR.GÖR. GÜNAY TEMÜR - TEKNOLOJİ F. / BİLGİSAYAR MÜH.

Algoritma ve Akış Diyagramları

MAK 210 SAYISAL ANALİZ

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

MATEMATİK. Doç Dr Murat ODUNCUOĞLU

ALGORİTMA VE PROGRAMLAMA II

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

Giris {\} /\ Suhap SAHIN

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

C Konsol Giriş Çıkış Fonksiyonları

BİL1001 Bilgisayar Bilimlerine Giriş 1

Sayı Sistemleri. Mikroişlemciler ve Mikrobilgisayarlar

BİLGİSAYAR SAYILARININ C PROGRAMLAMA DİLİNE UYGUN GENİŞLETİLMESİ *

Nesne Yönelimli Programlama

Computer Networks 7. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BILGISAYAR ARITMETIGI

Erciyes Üniversitesi, Mühendislik Fakültesi, İnşaat Mühendisliği Bölümü İNŞ-201 Nümerik Analiz Dersi Final Sınavı

Yrd. Doç. Dr. Caner ÖZCAN

BİLGİSAYAR PROGRAMLAMA

BİLGİSAYAR ORGANİZASYONU

Atatürk Anadolu. Temel Kavramlar Üzerine Kısa Çalışmalar

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

ÜNİTE. MATEMATİK-1 Prof.Dr.Ekrem KADIOĞLU İÇİNDEKİLER HEDEFLER SAYI KÜMELERİ. Sayılar Üslü Sayılar Köklü Sayılar Aralıklar Mutlak Değer

Şekil 9.1 IP paket yapısı

Ç NDEK LER. Bölüm 4: Üslü Say lar...44 Üslü fadeler...44 Al t rmalar...47 Test Sorular...49

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

d) x TABAN ARĐTMETĐĞĐ

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

1. Sabit Noktal Say Sistemleri

BM-311 Bilgisayar Mimarisi

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

B.Ç. / E.B. MİKROİŞLEMCİLER

8. SINIF MATEMATiK KAREKÖKLÜ SAYILAR

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

MS Excel. Excel Microsoft Office in bir parçasını oluşturur. Office 2007, Office 2010, Office 2013, Office 2016

TAM SAYILAR. Tam Sayılarda Dört İşlem

Bölüm 7. İfadeler ve atamalar ISBN

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Ilgili prefixes ler. 2 nin kuvvetleri. 2 nin kuvvetleri

SAYISAL ANALİZ. Doç.Dr. Cüneyt BAYILMIŞ. Sayısal Analiz. Doç.Dr. Cüneyt BAYILMIŞ

Transkript:

Algoritmalar ve Programlama DERS - 2 Yrd. Doç. Dr. Ahmet SERBES

Programlama Bilgisayara ne yapması gerektiğini, yani onunla konuşmamızı sağlayan dil. Tüm yazılımlar programlama dilleri ile yazılır. 1. Seviye Makine dili 2. Seviye Assembly dili 3. Seviye C, C++, Java, Fortran vs 4. Seviye SQL, veritabanı sorgulama dilleri 5. Seviye Doğal dil işleyen akıllı diller Bir bilgisayar programının çalışması genel olarak: YORUMLAYICI Kaynak Kodu.c,.cpp,.h,.pas,.m Derleyici.obj.out.cof Bağlayıcı.exe.hex.bin Makine Dili

İkilik Sayı Sistemi Bilgisayar sistemleri 2 lik sayı sistemi kullanır. İkilik sayı sisteminde her sayıyı oluşturan rakama bit (binary information unit) denir. Örn, 1 bytelık sayı: 1 0 0 1 0 1 1 0 MSB = 1 2 7 + 0 2 6 + 0 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 1 2 1 + 0 = 150 8 bit = 1 byte, 16 bit = 2 byte = 1 word 4 bit = nibble LSB

İkilik Sayı Sistemleri 8 bitlik pozitif sayılar 0-255, 16 bitlik pozitif sayılar 0-1023, 32 bitlik pozitif sayılar 0-4GB (2 32 1 bit) arasıdır. Genel olarak, 2 lik sayı sistemi binary. örn, 01001101b 10 luk sayı sistemi decimal, 157d veya 157 16 lık sayı sistemi hexadecimal, 9Dh veya 0x9d A 10, B 11, C 12, D 13, E 14, F 15 10 luk sayı sisteminden 2 lik sayı sistemine ardışıl olarak 2 ye bölerek geçilir.

İkilik Sayı Sistemi Bir byte lık en küçük pozitif sayı 0000 0000 (0) ve 1111 1111 (255) Aradaki tüm sayılar pozitiftir. Negatif sayılar söz konusu olduğunda 1 byte lık sayıyı -128 ile +127 arasında değerler alan iki parçaya böleriz. En baştaki bit sayının pozitif ya da negatif olduğunu belirtir. Pozitif sayılar 0000 0001 (1) ile 0111 1111 (127) arasında Negatif sayılar 1111 1111 (-1) ile 1000 0000 (-127) arasındadır. İkilik sistemde negatif sayılar 2 nin tümleyeni alınarak bulunur. Örn, 53 0011 0101b olarak kolayca bulunur. İkilik düzende -53 ü bulmak için 0011 0101b deki bitler evrilir ve 1 eklenir: 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 +1 = 1 1 0 0 1 0 1 1 53 2 nin tümleyeni -53

Neden 2 nin Tümleyeni? Negatif sayıları 2 nin tümleyeni şeklinde göstermek çıkarma işleminin basit olarak yapılmasını sağlar. Örneğin 40-20 yi 2 ye tümleyenle hesaplayalım: 40 20 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 20 1 0 0 0 1 0 1 0 0 = 20 Bilgisayar, çıkarma işlemini pozitif sayıyla negatif sayıyı toplayarak yapar. 57-124 ü 2 ye tümleyenle hesaplayalım: 57 124 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 67 1 0 1 1 1 1 0 1 = 67

Fazlalık Gösterimi Sayı Fazlalık Sayı Bit Katarı 7 15 1111 6 14 1110 5 13 1101 4 12 1100 3 11 1011 2 10 1010 1 9 1001 0 8 1000-1 7 0111-2 6 0110-3 5 0101-4 4 0100-5 3 0011-6 2 0010-7 1 0001-8 0 0000 Fazlalık gösteriminde (excess notation) sayılar sıralıdır. Yanlı gösterimin özel bir halidir. Kayan noktalı (floating point) sayı sistemlerinde kullanılır.

Fazlalık Gösterimi Hesaplanması Örneğin, 8 bitlik fazlalık gösteriminde, 2 8 1 = 128 sihirli sayı olarak adlandırılır (herhangi bir sihir olmasa da). Daha sonra sayının değeri normal olarak hesaplanır. En son, hesaplanan değerden sihirli sayı çıkarılır. Örn, 0110 0001 sayısının fazlalık gösteriminde gerçek değerini hesaplamak için 1. Sihirli sayı = 2 8 1 = 128 2. 2 0 + 2 5 + 2 6 = 97 olarak bulunur. 3. 97 128 = 31 olarak değer hesaplanır. Başka bir örnek olarak 16 bitlik fazlalık gösteriminde 1001 0000 0101 1101 sayısının fazlalık gösterimindeki değeri 1. Sihirli sayı = 2 16 1 = 32768 2. 1001 0000 0101 1101 = 36957 olarak normal şekilde hesaplanır 3. 36957-32768 = 4189 olarak değer bulunur.

Noktalı Gösterim Kayan noktalı (floating point) gösterim Bit katarının alabileceği en yüksek değerden daha yüksek sayıları ifade edebilmek için Gerçel (reel) sayıları, yani kesirli sayıları ifade edebilmek için kullanılır. Sabit noktalı (fixed point) gösterim Sadece kesirli sayıları ifade etmeye yarar. Noktanın yeri sabittir.

Sabit Noktalı Gösterim Küsüratlı sayıları ifade etmeye yarar. Örn., 8 bitlik gösterimde noktanın yeri 3. ile 4. bit arasındaysa 4.4 lük gösterim olarak adlandırılır. 1011.0101 4.4 lük gösterim 0.101 1010 1.5 lik gösterim Virgülden sonraki bitler kesirli kısmı (mantis) gösterir. Örn, a 7 a 6 a 5 a 4. a 3 a 2 a 1 a 0 da kesirli kısım: a 3 2 1 + a 2 2 2 + a 1 2 3 + a 0 2 4 Virgülden önceki bitler 2 nin tümleyeni gösterimindedir. Örn., 4.4 lük gösterimde 0110 1011 6.6875 1011 0110 5.375 a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0

Sabit Noktalı Gösterim Değer a 7 a 6 a 5 a 4 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111-1 1111-2 1110-3 1101-4 1100-5 1011-6 1010-7 1001-8 1000 İkinin tümleyeni Değer a 3 a 2 a 1 a 0 0 0000 0.0625 0001 0.125 0010 0.1875 0011 0.25 0100 0.3125 0101 0.375 0110 0.4375 0111 0.5 1000 0.5625 1001 0.625 1010 0.6875 1011 0.75 1100 0.8125 1101 0.875 1110 09335 1111 Normal gösterim a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 Örn. 4.4 lük sabit nokta gösterimi. -8.93375 ile 7.96675 arasında değer alır. Örn., 1100 1011 = -4.6875

Kayan Noktalı Gösterim Kayan noktalı gösterim (floating point representation) Kesirli Çok yüksek ve Çok düşük sayıları göstermeye yarar. Bit katarı üç bölgeye ayrılır: İşaret biti Üstel Mantis (kesirli kısım) İşaret Biti Üstel Mantis

Kayan Noktalı Gösterim a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 a 7 ± işaret biti a 6 a 5 a 4 fazlalık gösteriminde üstel 2 a 6a 5 a 4 a 3 a 2 a 1 a 0 kesirli kısım 1. a 3 a 2 a 1 a 0 8 bitlik sayı: a 7 == 0 ise 1. a 3 a 2 a 1 a 0 2 a 6a 5 a 4 a 7 == 1 ise 1. a 3 a 2 a 1 a 0 2 a 6a 5 a 4 Örnek: 0111 1001 0 111 1001 ayrılır 0 pozitif 111 üstel kısım. Artık gösterimde 3 e eşit. 2 3 1.1001 1.5625 Sonuç olarak 1.5625 8 = 12.5

IEEE 754 Tek Hassasiyetli Kayan Nokta Gösterimi İşaret Biti Fazlalık gösteriminde 8 bitlik üstel kısım 23 bitlik mantis Tek hassasiyetli gösterim 32 bitliktir. İşaret biti 1 ise sayı negatif, değilse pozitiftir. 23 bitlik mantis 24 bitlikmiş gibi hesaplanır. 8 bitlik üstel kısım fazlalık-127 gösterimindedir.

Mantis Hesaplama 1. b 22 b 21 b 20 b 19 b 18 b 17 b 16 b 15 b 14 b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 23 bitlik mantis 24 bitlikmiş gibi hesaplanır. 23 bitlik mantis 1. b 22 b 21 b 0 Örn, Mantis 1011 0101 0000 0000 0000 000 ise değeri ise başına bir ekleyip: 1.1011 0101 0000 0000 0000 000 = 1 + 2 1 + 2 3 + 2 4 + 2 6 + 2 8 = 1.7070 şeklinde hesaplanır. Mantisin alabileceği en küçük değer 1 değeridir. En büyük değer ise 2 2 23 olur.

Üstel Hesabı Üstel, fazlalık-127 gösterimindedir. 128 ve -127 değerleri özel sayılar için ayrılmıştır. Üstelin alabileceği En düşük değer -126 (0000 0001) En yüksek değer 127 (1111 1110) olmaktadır. Örneğin, -34 değerini fazlalık-127 gösteriminde ikilik olarak, -34 + 127 = 93 93 0101 1101 Örneğin, 1001 0101 değeri fazlalık-127 gösterimindeki karşılığı 1001 0101 149 149 127 = 22 Fazlalık gösteriminde 8 bitlik üstel kısım

En Yüksek ve En Düşük Değerler Tek hassasiyetli kayan nokta gösteriminde yazılabilecek en yüksek sayı 0 1111 1110 1111 1111 1111 1111 1111 111 = +1 2 127 (2 2 23 2) 1.111 1111 1111 1111 1111 111 2 1111 1111 2 128 3.4028e + 38 Yazılabilecek en küçük sayı: 3.4028e + 38 (sadece işaret biti değişir) Yazılabilecek en küçük pozitif sayı 0 0000 0001 0000 0000 0000 0000 0000 000 = +1 2 126 1.0 = 2 126 1.1755e 38 Yazılabilecek en yüksek negatif sayı: 2 126 1.1755e 38 (sadece işaret biti değişir

Özel Kayan Noktalı Sayılar Kayan noktalı sayılarda normalde 0, ± ve NaN tanımlayabilmek için üsteli 0000 0000 ve 1111 1111 değerleri rezervedir. Üstel 0000 0000 değeri 0 ve 0 sayıları için ayrılmıştır: İşaret biti 0 değer 0 (sayı/ = 0, sayı/0 = ) İşaret biti 1 değer 0 (sayı/ = 0, sayı/ 0 = ) Pozitif ve negatif sonsuz değerleri de özel float sayılardır. 0 1111 1111 0000 0000 0000 0000 0000 000 + 1 1111 1111 0000 0000 0000 0000 0000 000 0/0, ± /±, + + ( ), 0 0, 1 ve bunun gibi işlemlerin sonucu olarak NaN (Not a Number) 0 1111 1111 XXXX XXXX XXXX XXXX XXXX XXX +NaN sıfırdan farklı 1 1111 1111 XXXX XXXX XXXX XXXX XXXX XXX NaN sıfırdan farklı

Tek Hassasiyetli Kayan Nokta: Örnekler Örneğin, 39887,5625 sayısı IEEE 32-bit kayan nokta formatında: Tam sayı kısım 3988710 1001 1011 1100 1111. Kesirli kısım: 0,5625 = 1 0,5 + 0 0,25 + 0 0,125 + 1 0.0625 0.1001 Böylece sayı: 1001 1011 1100 1111,1001 1. Normalize et: 1001 1011 1100 1111,1001 = 1,0011 0111 1001 1111 0010 2 15 2. Mantis: 0011 0111 1001 1111 0010 000 3. Üstel 15 + 127 = 142 1000 1110 4. İşaret biti 0. Dolayısıyla 39887.5625 0100 0111 0001 1011 1100 1111 1001 0000 = 471bcf9016

Çift Hassasiyetli Kayan Nokta İşaret Üstel Mantis Toplam 64 bit. 1 bit işaret için 11 bitlik üstel, artık 1023 formatında 52 bit mantis (53 bit formatında) b 51, b 50,, b 0 1 işaret 1. b 51 b 50 b 0 2 üstel 1023 En büyük sayı 1.7977 10 308, En küçük sayı: 1.7977 10 308