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

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

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

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Dr. Fatih AY Tel: fatihay@fatihay.net

Yrd. Doç. Dr. Caner ÖZCAN

Floating Point (Kayan Noktalı Sayılar)

BLM1011 Bilgisayar Bilimlerine Giriş I

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

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

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

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 Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

ALGORİTMA VE PROGRAMLAMA II

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

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

PASCAL PROGRAMLAMA DİLİ YAPISI

Floating Point (Kayan Noktalı Sayılar)

Biçem Belirteçleri (Format Specifiers)

C Programlama Dilininin Basit Yapıları

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

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

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Komut Seti Mimarisi (ISA)

Adım Adım C-II. Eksik kalmış konular

Programlama Dilleri 3

YZM 2105 Nesneye Yönelik Programlama

Eln 1001 Bilgisayar Programlama I

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

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R


BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

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

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Nesne Yönelimli Programlama

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

C Konsol Giriş Çıkış Fonksiyonları

PROGRAMLAMAYA GİRİŞ DERS 2

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

BÖLÜM 2 SAYI SİSTEMLERİ

/*int sayi1, sayi2,toplam=0;

C Programlama. C Programlama. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

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

Eln 1002 Bilgisayar Programlama II

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

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

Mantıksal (Logic) Operatörler

BİL1001 Bilgisayar Bilimlerine Giriş 1

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Genel Programlama II

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

BÖLÜM 11: YAPISAL VERİ TİPLERİ

1. PROGRAMLAMAYA GİRİŞ

C Operatörler. Öğr. Gör. M. Ozan AKI. Rev 1.0

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

BLM221 MANTIK DEVRELERİ

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Nesne Yönelimli Programlama

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

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

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi,

AND Komutu. and hedef, kaynak

Her veri tipine yetecek ve ancak o kadar anabellek alanı ayrılır. Programcı, ana bellekte ayrılacak adresin büyüklüğünü bilerek değişkenlerini

mikroc Dili ile Mikrodenetleyici Programlama Ders Notları

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Nesne Tabanlı Programlama

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Nesne Tabanlı Programlama

2.3- OPERATÖRLER ÇALIŞMA YAPRAĞI

Java da İşleçler, Ders #3 (4 Kasım 2009)

1. Bölüm Sayı Sistemleri

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

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Görsel Programlama 1

KODLAMA VE HATA BULMA TEKNİKLERİ

Pointers (İşaretçiler)

Bulanık Küme Kavramı BULANIK KÜME. Sonlu ve Sonsuz Bulanık Kümeler. Sonlu ve Sonsuz Bulanık Kümeler

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

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

PROGRAMLAMA TEMELLER. C Program Yap s

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

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

Transkript:

Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides of the textbook: http://csapp.cs.cmu.edu/ 1

Bit, Byte ve Integer Bilginin bitler ile ifade edilmesi Bit düzeyinde manipülasyonlar Integer unsigned ve signed Dönüştürme (conversion), tip dönüşümü (casting) Genişletme (expanding), kırpma (truncating) Toplama, işaret değiştirme (negation), çarpma, kaydırma Bilginin hafızada saklanma şekilleri, pointer lar, karakter dizileri (string ler) 2

Herşey bit ile ifade edilir Her bit 0 veya 1 dir. Bit gruplarının değişik şekillerde kodlanması/anlamlandırılması ile Bilgisayarlar ne yapacaklarına karar verirler (komutlar, opcode lar..) ve sayıları, karakter dizilerini, vs ifade edip manipüle ederler. Neden bit? Elektronik sistem olarak uygulama kolaylığı İki durumlu elektronik elemanlarla kaydetmek kolaydır. Gürültü altında bile analog sinyallere göre daha güvenli iletilebilirler. 1.1V 0.9V 0.2V 0.0V 0 1 0 3

Byte Değerlerinin Kodlanması Byte = 8 bit Binary 000000002 den 111111112 ye kadar. Onluk tabanda: 010-25510 Onaltılık tabanda: 0016 - FF16 16 tabanında sayıların ifade edilmesi 0 dan 9 a rakamlar ve A dan F e karakterler C dilinde FA1D37B16 şu şekillerde yazılır: 0xFA1D37B 0xfa1d37b 0 0 0000 1 1 0001 2 2 0010 3 4 3 4 0011 0100 5 5 0101 6 6 0110 7 7 0111 8 9 8 9 1000 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 4

C de veri tiplerinin tipik boyutları C Veri Tipi 32-bit program 64-bit program char 1 1 short 2 2 int 4 4 long 4 8 int32_t 4 4 Int64_t 8 8 float 4 4 double 8 8 char * 4 8 5

Bit, Byte ve Integer Bilginin bitler ile ifade edilmesi Bit düzeyinde manipülasyonlar Integer unsigned ve signed Dönüştürme (conversion), tip dönüşümü (casting) Genişletme (expanding), kırpma (truncating) Toplama, işaret değiştirme (negation), çarpma, kaydırma Bilginin hafızada saklanma şekilleri, pointer lar, karakter dizileri (string ler) 6

Boole Cebri George Boole tarafından 19. yüzyılda geliştirilmiştir. Lojiğin cebirsel ifadesidir Doğru 1 ile Yanlış 0 ile kodlanır. Ve (And) Veya (Or) Hem A=1 hem de B=1 ise A&B = 1 A=1 veya B=1 ise A B = 1 Değil (Not) A=0 ise ~A = 1 Özel-veya (Exclusive-Or, Xor) A=1 veya B=1 ise fakat ikisi birden 1 değilse A^B = 1 7

Genel Boole Cebri Bit vektörleri (bit dizileri) üzerinde işlemler İşlemler bit düzeyinde karşılıklı bitler arasında uygulanır &01101001 &01010101 01000001 01101001 01010101 01111101 ^ 01101001 ^ 01010101 00111100 ~ 01010101 01000001 01111101 00111100 10101010 Boole cebrinin tüm özellikleri geçerlidir 8

Küme şeklinde gösterim ve Manipülasyonlar Gösterim w genişliğinde bir A bit dizisi {0,, w 1} kümesinin bir alt kümesidir Eğer j A ise a j = 1 dir. a j, A daki herbir biti göstermektedir. 01101001 { 0, 3, 5, 6 } A 76543210 01010101 { 0, 2, 4, 6 } B 76543210 A ve B kümeleriyle işlemler & Kesişim 01000001 { 0, 6 } Birleşim 01111101 { 0, 2, 3, 4, 5, 6 } ^ Simetrik Fark (XOR) 00111100 { 2, 3, 4, 5 } ~ Tümleyen 10101010 { 1, 3, 5, 7 } 9

C de Bit-Düzeyinde İşlemler C de &,, ~, ^ işlemleri bulunmaktadır. Tam sayıların sonlu bir alt kümesini gösteren tüm veri tiplerine ( integral veri tipi) uygulanabilirler. long, int, short, char, unsigned Argümanları bir vektörü olarak görürler Argümanlar bit-düzeyinde işleme tabi tutulurlar Örnekler (Char veri tipi için) ~0x41 0xBE ~010000012 101111102 ~0x00 0xFF ~000000002 111111112 0x69 & 0x55 0x41 011010012 & 010101012 010000012 0x69 0x55 0x7D 011010012 010101012 011111012 10

C de Lojik (Mantıksal) İşlemler Bit-Düzeyinde işlemlerden farklıdırlar Semboller VE: &&, VEYA:, DEĞİL:! 0 Yanlış Sıfırdan farklı değer Doğru Ya 0 (Yanlış) ya da 1 (Doğru) değeri dönerler Lojik ifadenin değeri birinci argümana bakılarak belirlenebiliyorsa ikinci argüman değerlendirilmez. Örnekler (char veri tipi. İşlemlerin bit-düzeyindeki karşılıklarından farklı sonuçlar çıkabildiğine dikkat ediniz!)!0x41 0x00!0x00 0x01!!0x41 0x01 0x69 && 0x55 0x01 0x69 0x55 0x01 (0x69 Doğru olduğu için VEYA operatöründen sonra gelen ikinci argümanı değerlendirmeye gerek kalmaz) p && *p (Null pointer erişimi hatasını önler, p=0 ise p bir Null pointer dir, operatör VE olduğu için *p yi değerlendirmeden sonucun 0 olduğu sonucuna varılır.) a && 5/a (a=0 ise ikinci argüman işletilmeden 0 döner; hiçbir zaman sıfıra bölme hatası ile karşılaşılmaz.) 11

C de Lojik (Mantıksal) İşlemler Bit-Düzeyinde işlemlerden farklıdırlar Semboller VE: &&, VEYA:, DEĞİL:! 0 Yanlış Sıfırdan farklı değer Doğru Ya 0 (Yanlış) ya da 1 (Doğru) değeri dönerler Lojik ifadenin değeri birinci argümana bakılarak belirlenebiliyorsa ikinci argüman değerlendirilmez. Örnekler (char veri tipi. İşlemlerin bit-düzeyindeki karşılıklarından farklı sonuçlar çıkabildiğine dikkat ediniz!)!0x41 0x00!0x00 0x01!!0x41 0x01 0x69 && 0x55 0x01 0x69 0x55 0x01 (0x69 Doğru olduğu için VEYA operatöründen sonra gelen ikinci argümanı değerlendirmeye gerek kalmaz) p && *p (Null pointer erişimi hatasını önler, p=0 ise p bir Null pointer dir, operatör VE olduğu için *p yi değerlendirmeden sonucun 0 olduğu sonucuna varılır.) a && 5/a (a=0 ise ikinci argüman işletilmeden 0 döner; hiçbir zaman sıfıra bölme hatası ile karşılaşılmaz.) 12

C de Lojik (Mantıksal) İşlemler Bit-Düzeyinde işlemlerden farklıdırlar Semboller VE: &&, VEYA:, DEĞİL:! 0 Yanlış Sıfırdan farklı değer Doğru Ya 0 (Yanlış) ya da 1 (Doğru) değeri dönerler DİKKAT! && Mantıksal, & Bit-düzeyinde VE Mantıksal, Bit-düzeyinde VEYA Lojik ifadenin değeri birinci argümana bakılarak belirlenebiliyorsa ikinci argüman değerlendirilmez. Örnekler (char veri tipi. İşlemlerin bit-düzeyindeki karşılıklarından farklı sonuçlar çıkabildiğine dikkat ediniz!)!0x41 0x00!0x00 0x01!!0x41 0x01 0x69 && 0x55 0x01 0x69 0x55 0x01 (0x69 Doğru olduğu için VEYA operatöründen sonra gelen ikinci argümanı değerlendirmeye gerek kalmaz) p && *p (Null pointer erişimi hatasını önler, p=0 ise p bir Null pointer dir, operatör VE olduğu için *p yi değerlendirmeden sonucun 0 olduğu sonucuna varılır.) a && 5/a (a=0 ise ikinci argüman işletilmeden 0 döner; hiçbir zaman sıfıra bölme hatası ile karşılaşılmaz.) 13

Kaydırma (Shift) İşlemleri Sola Kaydırma: x << y x bit vektörünü y kadar sola kaydırır. Soldaki ekstra bitler atılır. Sağdaki kayan bitlerin yeri 0 ile doldurulur. Sağa kaydırma: x >> y x bit vektörünü y kadar sağa kaydırır. Sağdaki ekstra bitler atılır. İki tipi vardır: Lojik ve Aritmetik Lojik kaydırma Soldaki kayan bitlerin yeri 0 ile doldurulur. Aritmetik kaydırma Soldaki kayan bitlerin yeri işaret biti ile doldurulur. Tanımlanmamış durumlar Kaydırma miktarı 0 dan küçük ise veya word size a eşit ya da word size dan büyük ise. Argüman x << 3 Lojik >> 2 Arit. >> 2 Argüman x << 3 Lojik >> 2 Arit. >> 2 01100010 00010000 00011000 00011000 10100010 00010000 00101000 11101000 İki tip sağa kaydırma olmasına rağmen C de tek bir sağa kaydırma operatörü vardır, >>. Birçok C compiler ı sağa kaydırmanın tipini integer ın türüne göre belirler; sıklıkla signed integer lar aritmetik kaydırmaya göre, unsigned integer lar da lojik kaydırmaya göre sağa kaydırılır. 14