Bilgisayar ve Programlamaya Giriş · Ders Notu
Temel Kavramlar
Bilgisayar, ne iş yaparsa yapsın, aynı basit düzenle çalışır: veriyi alır, işler, sonucu sunar ve gerekirse saklar. Bu düzenin altında daha da basit bir gerçek yatar. Bilgisayarın içindeki her şey, yazı da resim de müzik de, yalnız 0 ve 1'lerden oluşan dizilerle tutulur. Not, önce bu çalışma döngüsünü ve donanımın hangi parçasının hangi aşamada görev aldığını anlatır. Ardından bit ve bayt kavramlarına, ikili sayı sistemine ve onluk ile ikili arasındaki dönüşümlere geçer. Metnin, görüntünün, sesin ve videonun nasıl sayıya çevrildiği, dosyaların neden sıkıştırıldığı, bellek birimleri ve ağ hızının nasıl ölçüldüğü adım adım hesaplarla gösterilir. Mantıksal işlemler ve parite biti, bilgisayarın veriyle karar vermesini ve hata yakalamasını örnekler. Son iki kesim, bilgisayar türlerini ve bilgi teknolojilerinin günlük yaşamdaki yerini ele alır.
Öğrenme çıktıları
- Çalışma prensibi
- Giriş, işlem, çıkış ve depolama aşamalarını açıklamak; verilen bir işte her aşamayı ve görev alan donanımı belirlemek.
- Sayısal temsil
- Bit, bayt ve ikili sayı sisteminin rolünü yorumlamak; ikili, onluk ve onaltılık sayılar arasında dönüşüm yapmak; metin, görüntü ve sesin kapladığı yeri hesaplamak.
- Veri işleme
- Aritmetik, karşılaştırma ve mantıksal işlemlerin kararlarda nasıl birleştiğini göstermek; parite bitiyle hata yakalamanın gücünü ve sınırını açıklamak.
- Bilgisayar türleri
- Bilgisayarları kullanım amacı ve kapasitesine göre karşılaştırmak; bir ihtiyaç için uygun türü gerekçesiyle seçmek.
- Bilgi teknolojileri
- Verinin bilgiye dönüşümünü ve veri yaşam döngüsünü açıklamak; bilgi teknolojilerinin günlük yaşamdaki rolünü ve getirdiği sorumlulukları tartışmak.
1.1Çalışma prensibi
Bir hesap makinesi, bir akıllı telefon, bir oyun konsolu ve bir bankanın büyük sunucuları dışarıdan birbirine hiç benzemez. Boyutları, fiyatları ve yaptıkları işler çok farklıdır. Yine de hepsi aynı temel düzenle çalışır. Bu kesim o ortak düzeni anlatır: bilgisayarın ne olduğunu, bir işi hangi aşamalardan geçirerek yaptığını ve her aşamada hangi donanımın görev aldığını.
1.1.1Bilgisayar nedir?
Günlük dilde “bilgisayar” denince çoğunlukla masadaki kasa ya da dizüstü cihaz akla gelir. Bilgisayar biliminde kavram daha geniştir. Bir çamaşır makinesinin içindeki küçük denetim kartı da, bir sunucu odasını dolduran dolaplar da bilgisayardır. Onları ortak kılan, belirli bir işi yapan tek amaçlı bir alet olmaları değil, kendilerine verilen komutları izleyerek veriyi işlemeleridir.
Bilgisayar (computer), aldığı verileri bir programdaki komutlara göre işleyen elektronik bir sistemdir. Bilgisayara giren ham değerlere veri (data), işlemden sonra elde edilen ve yorumlanabilen sonuca bilgi (information) denir. Bilgisayara ne yapacağını adım adım söyleyen komutlar dizisine program denir.
Tanımdaki üç parça birbirinden ayrı düşünülmelidir. Veri, işlenecek malzemedir: bir sınav notu, bir sıcaklık ölçümü, klavyeden basılan bir harf. Program, malzemeye ne yapılacağını söyleyen tariftir: “bu iki sayıyı topla”, “ortalamayı hesapla”, “sonucu ekrana yaz”. Bilgisayar ise tarifi harfiyen uygulayan makinedir. Aynı makineye farklı bir program yüklenince bambaşka bir iş yapar. Bilgisayarı hesap makinesinden ayıran asıl özellik de budur: ne yapacağı donanımına gömülü değildir, programla belirlenir.
Şekil 1.1 bu modeli en küçük ölçekte gösterir. 12 ve 8 sayıları tek başına bir şey anlatmaz; nereden geldikleri bilinmez. Program bu iki sayıyı toplamasını söyler ve bilgisayar 20 sonucunu üretir. “Toplam: 20” artık okunup yorumlanabilen bir sonuçtur. Veri ile bilgi arasındaki ayrımın ayrıntılı tanımı Tanım 1.21'de verilir.
Tanım bilgisayarın üç temel görevini de içerir. Bilgisayar kullanıcıdan ya da başka sistemlerden veri alır. Bu veriyi programa göre işler ve anlamlı bir sonuç üretir. Sonucu kullanıcıya sunar ya da daha sonra kullanmak üzere saklar. Bu dört eylem, yani almak, işlemek, sunmak ve saklamak, bilgisayarın çalışma döngüsünün aşamalarıdır.
Bilgisayarın “düşündüğünü” ya da “anladığını” sanmak. Bilgisayar, programdaki komutları çok hızlı ve hatasız uygular, ama komutların amacını bilmez. 12 ile 8'i toplarken bunların sınav notu mu, fiyat mı, sıcaklık mı olduğunu bilmez. Anlamı veren, veriye bağlam ekleyen insandır.
1.1.2Temel çalışma döngüsü
Bilgisayar her işte aynı dört aşamayı kullanır: giriş (input), işlem (process), çıkış (output) ve depolama (storage). İngilizce baş harflerinden ötürü bu modele kısaca IPOS modeli de denir. Bir metin yazarken, bir video izlerken ya da bir oyun oynarken bu dört aşama saniyede milyonlarca kez tekrarlanır. Aşamaları tanımanın en iyi yolu, onları tek bir somut iş üzerinde izlemektir.
Giriş, verinin dış dünyadan bilgisayara alınmasıdır. İşlem, verinin program komutlarına göre hesaplanması, karşılaştırılması ya da dönüştürülmesidir. Çıkış, işlenmiş sonucun kullanıcıya ya da başka bir sisteme sunulmasıdır. Depolama, verinin ve sonuçların daha sonra yeniden kullanılmak üzere saklanmasıdır.
Bir öğrenci bilgi sistemi, dönem ortalamasını 0,4 × vize + 0,6 × final formülüyle hesaplıyor. Öğretmen bir öğrenci için vize = 70, final = 90 giriyor. Dört aşama şöyle işler:
- Giriş. Öğretmen formdaki kutulara 70 ve 90 yazar. Klavye, basılan her tuşu bilgisayara iletir. Bu aşamada veri yalnızca bilgisayarın içine taşınır; henüz hesap yapılmamıştır.
- İşlem. Merkezi işlem birimi (CPU) formülü uygular. Önce iki çarpma yapılır: 0,4 × 70 = 28 ve 0,6 × 90 = 54. Sonra iki sonuç toplanır: 28 + 54 = 82. Bunlar aritmetik işlemlerdir.
- Çıkış. Sonuç ekranda “Ortalama: 82” biçiminde görünür. Monitör burada çıkış birimidir.
- Depolama. Öğrencinin not kaydı veri tabanına yazılır. Böylece bilgisayar kapansa da kayıt kaybolmaz; dönem sonunda transkript hazırlanırken kayıt yeniden okunur ve işlenir.
Sonuç: ekranda “Ortalama: 82” görünür ve kayıt kalıcı olarak saklanır.
Şekil 1.2 dört aşamanın birbirine nasıl bağlandığını gösterir. Giriş, işlem ve çıkış tek yönlü bir hat gibidir: veri soldan girer, sağdan sonuç olarak çıkar. Depolama ise bu hattın yanında durur ve işlemle iki yönde konuşur. İşlem, sonucu depolamaya yazabilir; ileride aynı veriye gerek olursa depolamadan okuyabilir. Ortalama örneğinde dönem sonundaki transkript hesabı, daha önce saklanmış notları okuyarak yapılır. O hesap için depolama, girişin yerini tutar.
Dört aşama her işte aynı adlarla bulunur, ama her işte aynı ağırlıkta değildir. Bir hesap makinesinde depolama neredeyse yoktur; sonuç ekranda görünür ve bir sonraki hesapta kaybolur. Bir arşiv sisteminde ise asıl iş depolamadır. Bir modeli bir işe uygularken önce dört sorunun cevabı aranır: veri nereden geliyor, üzerinde hangi hesap yapılıyor, sonuç nereye gidiyor, ne saklanıyor?
Bir ATM'den 500 TL çekilirken aşamalar şöyle ayrılır:
- Giriş: kart okuyucu kartın bilgilerini okur; kullanıcı tuş takımından şifreyi ve 500 TL tutarını girer.
- İşlem: bankanın bilgisayarı şifreyi doğrular, bakiyeyi çekilecek tutarla karşılaştırır (bakiye ≥ 500 mü?) ve yeni bakiyeyi hesaplar (bakiye − 500).
- Çıkış: para çekmecesi banknotları verir, ekran yeni bakiyeyi gösterir, yazıcı fişi basar.
- Depolama: işlem kaydı ve yeni bakiye bankanın veri tabanına yazılır.
İşlem aşamasında iki tür iş vardır: bir karşılaştırma (bakiye yeterli mi?) ve bir aritmetik işlem (çıkarma). İkisi de işlemcinin işidir.
Ekranda bir sonucun görünmesini depolama sanmak. Ekran çıkıştır; gösterilen sonuç, bilgisayar kapanınca ya da ekran değişince kaybolur. Bir sonucun saklanmış sayılması için kalıcı bir ortama, örneğin diske ya da veri tabanına yazılması gerekir.
1.1.3Giriş
Giriş, bilgisayarın kullanıcıdan, bir sensörden ya da başka bir sistemden veri almasıdır. Bu işi yapan donanıma giriş birimi (input unit) denir. En tanıdık giriş birimleri klavye, fare, mikrofon ve dokunmatik ekrandır. Sensörler de giriş birimidir: bir termometre sıcaklığı, bir ivmeölçer telefonun eğimini, bir kamera ışığı ölçer.
| Giriş birimi | Algıladığı fiziksel olay | Bilgisayara giden veri |
|---|---|---|
| Klavye | Tuşa basılması | Tuşun kodu (karakter ya da komut) |
| Fare | Hareket ve düğmeye basma | Konum değişimi ve tıklama |
| Mikrofon | Hava basıncındaki dalgalanma (ses) | Belirli aralıklarla ölçülmüş sayı dizisi |
| Sensör | Sıcaklık, ışık, ivme gibi bir büyüklük | Ölçülen değer |
Tablodaki giriş birimlerinin hepsi aynı işi yapar: fiziksel bir olayı sayılara, daha doğrusu bitlere çevirir. Bilgisayarın içinde tuş, ses ya da sıcaklık yoktur; yalnızca sayılar vardır. Giriş biriminin görevi, dış dünyadaki olayı bilgisayarın işleyebileceği bu biçime getirmektir.
Şekil 1.3 bu çeviriyi bir tuş vuruşu için gösterir. Tuşa basılınca klavyenin içindeki küçük denetleyici, hangi tuşa basıldığını belirten bir kod gönderir. İşletim sistemi bu kodu, seçili klavye düzenine göre bir karaktere çevirir. Büyük “A” harfinin karakter kodu 65'tir. 65 sayısı bellekte sekiz bitlik 01000001 dizisi olarak tutulur. Bu dizinin neden 65'e karşılık geldiği Örnek 1.4'te adım adım hesaplanır.
Dokunmatik ekranı yalnızca çıkış birimi saymak. Dokunmatik ekran hem görüntü gösterir (çıkış) hem de dokunulan noktanın konumunu algılar (giriş). Bu yüzden hem giriş hem çıkış birimidir.
1.1.4İşlem
İşlem aşamasının merkezinde merkezi işlem birimi (central processing unit, CPU) bulunur. Günlük dilde buna kısaca işlemci denir. İşlemci program komutlarını sırayla yürütür. Her komut çok basit bir iştir: iki sayıyı topla, bir sayıyı bellekten oku, iki sayıyı karşılaştır, sonuca göre başka bir komuta atla. Karmaşık programlar, milyonlarca böyle küçük komutun art arda yürütülmesinden oluşur.
İşlemcinin üç temel parçası vardır. Kontrol birimi (control unit), sıradaki komutu getirir, ne istediğini çözer ve öteki parçalara ne yapacaklarını söyler; komutların sırasını o yönetir. Aritmetik-mantık birimi (arithmetic logic unit, ALU), toplama ve çıkarma gibi hesapları ve karşılaştırmaları yapar. Yazmaçlar (registers), işlemcinin içindeki çok küçük ve çok hızlı bellek hücreleridir; üzerinde çalışılan sayıları geçici olarak tutar.
Şekil 1.4 tek bir toplama komutunun yürütülmesini gösterir. Kontrol birimi sıradaki komutun ADD (topla) olduğunu çözer. Toplanacak sayılar, 12 ve 8, daha önce R1 ve R2 yazmaçlarına yüklenmiştir. ALU bu iki yazmacı okur, 12 + 8 = 20 hesabını yapar ve sonucu R3 yazmacına yazar. Ardından programın bir sonraki komutu bir karşılaştırmadır: 20, 15'ten büyük mü? ALU bu soruyu da cevaplar ve “doğru” anlamına gelen 1'i üretir.
ALU'nun yaptığı işler iki gruba ayrılır. Aritmetik işlemler sayılarla hesap yapar: toplama, çıkarma, çarpma, bölme. Mantıksal işlemler ise karşılaştırma yapar ve koşulları birleştirir: “20 > 15 mi?”, “hem puan yeterli hem devam tamam mı?”. Mantıksal işlemlerin sonucu her zaman “doğru” ya da “yanlış”tır. Bilgisayarın “karar vermesi”, yani bir duruma göre farklı yollar izlemesi, bu işlemlerle olur. İki tür işlem Şekil 1.21'de bir not hesabı üzerinde ayrıntılı olarak gösterilir.
İşlemcide hem veriler hem de komutların kendisi ikili biçimde, yani 0 ve 1'lerle temsil edilir. “ADD” komutu da bellekte bir bit dizisidir; kontrol birimi bu diziyi okuyup hangi işin yapılacağını anlar. Programın da veri gibi bellekte durması, bilgisayara yeni bir iş yaptırmak için yalnızca belleğe yeni bir program yüklemeyi yeterli kılar.
İşlemcinin hızını yalnızca “kaç GHz” sorusuyla ölçmek. Saat hızı, işlemcinin saniyede kaç temel adım attığını gösterir. Bir komutun kaç adımda bittiği, kaç çekirdek bulunduğu ve verinin bellekten ne kadar çabuk geldiği de hızı belirler. Aynı saat hızındaki iki işlemci aynı programı farklı sürelerde çalıştırabilir.
1.1.5Çıkış ve depolama
Çıkış birimleri (output unit), işlenmiş bilgiyi insanın algılayabileceği ya da başka bir sistemin kullanabileceği biçime getirir. Monitör sonucu görüntü olarak, yazıcı kâğıt üzerinde, hoparlör ses olarak sunar. Giriş birimlerinin yaptığının tersi olur: bitler yeniden ışığa, mürekkebe ya da sese dönüşür. Ortalama örneğindeki “Ortalama: 82” yazısı, hesap sonucunun ekrandaki çıkışıdır.
Depolama iki türlüdür ve bu ayrım günlük bilgisayar kullanımında çok önemlidir.
Geçici depolama (volatile storage), elektrik kesilince içeriğini kaybeden bellektir. Bilgisayarın ana belleği olan RAM (random access memory, rastgele erişimli bellek) geçicidir; çok hızlıdır ve açık programlarla belgeleri tutar. Kalıcı depolama (non-volatile storage), güç olmadan da veriyi koruyan ortamdır: SSD, sabit disk (HDD), USB bellek ve hafıza kartı bu türdendir.
Bir belge açıldığında belgenin kopyası kalıcı depolamadan RAM'e okunur. Üzerinde yapılan her değişiklik önce RAM'deki bu kopyaya işlenir. “Kaydet” komutu verilince RAM'deki güncel hâl kalıcı depolamaya, örneğin SSD'ye yazılır. Bu sıralamanın nedeni hızdır. RAM, SSD'den çok daha hızlıdır. İşlemci her harf için SSD'ye gitseydi bilgisayar çok yavaşlardı. Hızın bedeli ise güvenliktir: RAM'deki her şey güç kesilince silinir.
Şekil 1.5 bu üç anı sırayla gösterir. (a)'da belge yalnızca RAM'de yaşar; o anda elektrik kesilseydi bütün çalışma kaybolurdu. (b)'de “Kaydet” ile belgenin bir kopyası SSD'ye yazılır. (c)'de güç kesilir: RAM'deki her şey silinir, ama SSD'ye yazılmış iki dosya yerinde durur. Bilgisayar yeniden açılıp belge açıldığında, SSD'deki son kaydedilmiş hâl RAM'e yeniden okunur.
| Özellik | RAM (geçici) | SSD, sabit disk (kalıcı) |
|---|---|---|
| Güç kesilince | İçerik silinir | İçerik korunur |
| Hız | Çok hızlı | RAM'e göre yavaş |
| Tipik kapasite | 8–32 GB | 256 GB – birkaç TB |
| Ne tutar? | Çalışan programlar, açık belgeler | Kurulu programlar, kaydedilmiş dosyalar |
Bir öğrenci saat 14.00'te ödev belgesini kaydediyor. 14.00 ile 14.20 arasında belgeye iki sayfa ekliyor ama kaydetmiyor. 14.20'de elektrik kesiliyor. Bilgisayar yeniden açılıp belge açıldığında ne görülür?
- 14.00'teki kayıt, belgenin o andaki hâlini SSD'ye yazmıştır.
- 14.00–14.20 arasındaki değişiklikler yalnızca RAM'deki kopyaya işlenmiştir.
- Güç kesilince RAM'in içeriği silinir; eklenen iki sayfa kaybolur.
- Belge yeniden açıldığında SSD'deki son kayıt, yani 14.00'teki hâl, RAM'e okunur.
Sonuç: belge 14.00'teki hâliyle açılır. Bazı programların “otomatik kurtarma” özelliği belgenin kopyasını belirli aralıklarla diske yazar. Bu özellik açıksa son birkaç dakikanın kaybı azalır; ama bu, programın ayrıca yaptığı bir kayıttır, RAM'in kendisi bir şey korumaz.
“Bilgisayarımın belleği 512 GB” derken diski kastetmek. 512 GB çoğunlukla SSD'nin kapasitesidir; RAM bundan çok daha küçüktür (8, 16 ya da 32 GB gibi). Bellek (RAM) ile depolama (SSD, disk) ayrı donanımlardır ve farklı işler görür.
1.2Sayısal temsil
Önceki kesimde giriş birimlerinin her fiziksel olayı sayılara çevirdiği söylendi. Bu kesim o sayıların bilgisayarın içinde nasıl tutulduğunu anlatır. Cevap şaşırtıcı derecede yalındır: bilgisayar yalnızca iki durumu ayırt eder. Bu iki duruma 0 ve 1 adı verilir. Bütün sayılar, harfler ve görüntüler, bu iki simgeden oluşan uzun dizilerle yazılır.
1.2.1Her veri sayıya dönüşür
Bilgisayarın işlediği veri çok çeşitlidir: bir mesajdaki harfler, farenin ekrandaki konumu, bir fotoğrafın renkleri, bir şarkının sesi. İşlemci ise yalnızca sayılarla çalışır. Bu yüzden her veri türü için onu sayılara çeviren bir kural vardır. Kuralların ayrıntısı veri türüne göre değişir, ama düşünce hep aynıdır: veriyi parçalara ayır, her parçayı bir sayıyla yaz.
| Veri türü | Dönüşüm kuralı | Örnek |
|---|---|---|
| Metin | Her karakterin bir kod numarası vardır. | A → 65 → 01000001 |
| Fare hareketi | Ekrandaki konum iki koordinatla yazılır. | (x, y) → (420, 180) |
| Görüntü | Her piksel kırmızı, yeşil ve mavi bileşenlerle yazılır. | RGB(255, 0, 0): kırmızı |
| Ses | Ses dalgası belirli aralıklarla ölçülür. | genlik → sayı dizisi |
Şekil 1.6 bu dört dönüşümü yan yana gösterir. En alttaki satır önemli bir sonucu vurgular: dönüşümden sonra bellekte bir harfi bir sesten ayıran hiçbir işaret kalmaz. Hepsi bit dizisidir. Bir bit dizisinin harf mi, sayı mı, renk mi olduğunu, onu okuyan program bilir. Bu düşünce Şekil 1.12'de yeniden ele alınır.
1.2.2Bit, bayt ve basamak değeri
Bit, İngilizce binary digit (ikili basamak) ifadesinin kısaltmasıdır ve bilginin en küçük birimidir. Bir bit yalnızca iki değerden birini alır: 0 ya da 1. Sekiz bitlik bir gruba bayt (byte) denir: 1 bayt = 8 bit.
Gündelik hayatta sayıları onluk (decimal) sistemle yazarız. Onluk sistemde on rakam vardır (0'dan 9'a) ve her basamağın değeri, sağındakinin on katıdır. 352 sayısında 2 birler basamağında, 5 onlar basamağında, 3 yüzler basamağındadır:
352 = 3 × 100 + 5 × 10 + 2 × 1
İkili (binary) sistem aynı düşünceyi yalnızca iki rakamla, 0 ve 1 ile uygular. Her basamağın değeri sağındakinin iki katıdır. En sağdaki basamağın değeri 1'dir; sola doğru 2, 4, 8, 16, 32, 64, 128 diye ikiye katlanarak gider. Bu değerler 2'nin kuvvetleridir: 20 = 1, 21 = 2, 22 = 4 ve böyle sürer. Bir basamağın konumu sağdan 0'dan başlayarak sayılır; k. konumdaki basamağın değeri 2k'dır.
Bir sayı sisteminde her konumun bir basamak değeri (place value) vardır. Onluk sistemde basamak değerleri 1, 10, 100, …, ikili sistemde 1, 2, 4, 8, … biçimindedir. Bir sayının değeri, her basamaktaki rakamın o basamağın değeriyle çarpılıp sonuçların toplanmasıyla bulunur. Hangi sistemde yazıldığı karışmasın diye sayının sağ altına sistemin tabanı yazılır: 101₂ ikili, 101₁₀ onluk bir sayıdır.
101₂ ile 101₁₀ çok farklı sayılardır. 101₁₀ yüz birdir. 101₂ ise 1 × 4 + 0 × 2 + 1 × 1 = 5'tir. Taban yazılmadığında sayı onluk kabul edilir; ama ikili ve onluk sayıların bir arada geçtiği hesaplarda tabanı belirtmek karışıklığı önler.
Basamakları soldan saymak. İkili bir sayıda en küçük değerli basamak (1'ler basamağı) her zaman en sağdadır, tıpkı onluk sistemdeki birler basamağı gibi. 1000₂'deki 1, sağdan 3. konumdadır ve değeri 23 = 8'dir; 1 değil.
1.2.3İkiliden onluğa dönüşüm
İkili bir sayıyı onluğa çevirmek için her bitin altına basamak değeri yazılır, 1 olan bitlerin değerleri toplanır. 0 olan bitler toplama bir şey katmaz. Yöntemi, klavyedeki “A” harfinin bellekteki karşılığı olan 01000001 dizisi üzerinde izleyelim.
01000001₂ sayısını onluğa çevirelim.
- Basamak değerleri. Sekiz bitin altına, sağdan sola 1, 2, 4, 8, 16, 32, 64, 128 değerleri yazılır.
- 1 olan bitler. Soldan ikinci bit (6. konum) 1'dir; değeri 64'tür. En sağdaki bit (0. konum) 1'dir; değeri 1'dir. Öteki altı bit 0'dır.
- Toplam. 64 + 1 = 65.
Sonuç: 01000001₂ = 65₁₀. ASCII tablosunda 65 sayısı büyük “A” harfine karşılık gelir.
| Konum | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Basamak değeri | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Bit | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
| Katkı | 0 | 64 | 0 | 0 | 0 | 0 | 0 | 1 |
Şekil 1.7 hesabın görsel karşılığıdır. Basamak değerleri ezberlenirse ikiliden onluğa dönüşüm, birkaç sayının toplanmasından ibaret kalır. Sekiz bitin değerleri (128, 64, 32, 16, 8, 4, 2, 1) bilgisayar bilimiyle uğraşan herkesin zamanla ezberlediği bir dizidir.
11001010₂ sayısı onluk sistemde kaçtır?
- Bitler soldan sağa 1, 1, 0, 0, 1, 0, 1, 0; basamak değerleri 128, 64, 32, 16, 8, 4, 2, 1.
- 1 olan bitlerin değerleri: 128, 64, 8, 2.
- Toplam: 128 + 64 = 192; 192 + 8 = 200; 200 + 2 = 202.
Sonuç: 11001010₂ = 202₁₀. Bir denetim yolu: en sağdaki bit 0 olduğu için sayı çifttir; 202 de gerçekten çifttir. En sağdaki bit 1 olsaydı sonuç tek çıkmalıydı.
Baştaki sıfırları önemsiz sayıp basamak değerlerini kaydırmak. 01000001'deki baştaki 0, sayının değerini değiştirmez; 1000001₂ de 65'tir. Ama baştaki 0 atılınca sayı yedi bite iner ve en soldaki 1'in değeri 64 olarak kalır, 128 olmaz. Basamak değerleri her zaman sağdan sayılarak yazılırsa bu karışıklık olmaz.
1.2.4n bit kaç farklı değer gösterir?
Tek bir bit iki farklı değer gösterir: 0 ve 1. İki bitle dört farklı dizi yazılabilir: 00, 01, 10, 11. Üç bitle sekiz dizi vardır: 000'dan 111'e. Her yeni bit, var olan her dizinin önüne bir kez 0, bir kez 1 konarak eklenir; bu yüzden dizi sayısı her adımda iki katına çıkar.
n bitle tam olarak 2n farklı bit dizisi yazılabilir. Bu diziler işaretsiz tam sayı olarak okunursa 0'dan 2n − 1'e kadar olan sayıları gösterir.
Teoremin gerekçesi bir sayma işlemidir. Her bit için iki seçenek vardır ve bitler birbirinden bağımsız seçilir. İlk bit için 2, ikinci bit için yine 2 seçenek, toplamda 2 × 2 = 4 dizi eder. n bit için seçenekler n kez çarpılır: 2 × 2 × … × 2 = 2n. En küçük dizi bütün bitleri 0 olan dizidir ve 0'ı gösterir. En büyük dizi bütün bitleri 1 olandır ve değeri 2n − 1'dir. Bunun nedeni 0'ın da sayılmasıdır: 2n değer 0'dan başlar ve 2n − 1'de biter.
| Bit sayısı | Farklı değer | İşaretsiz değer aralığı |
|---|---|---|
| 1 bit | 21 = 2 | 0–1 |
| 2 bit | 22 = 4 | 0–3 |
| 8 bit | 28 = 256 | 0–255 |
| 10 bit | 210 = 1.024 | 0–1.023 |
| 16 bit | 216 = 65.536 | 0–65.535 |
| 32 bit | 232 = 4.294.967.296 | 0–4.294.967.295 |
Tablo 1.5 bu büyümenin ne kadar hızlı olduğunu gösterir. 8 bit 256 değer verir; bu yüzden bir bayt 0 ile 255 arasında bir sayı tutar. 10 bit 1.024 değer verir ve bu sayı, ilerideki bellek birimlerinde (1 KB = 1.024 bayt) yeniden karşımıza çıkar. 32 bitle dört milyarı aşan sayıda farklı değer yazılabilir. Bir bit eklemek değer sayısını iki katına çıkarır; on bit eklemek ise yaklaşık bin katına çıkarır, çünkü 210 = 1.024.
“8 bit 256'ya kadar sayar” demek. 8 bit 256 farklı değer gösterir, ama bu değerler 0'dan başladığı için en büyüğü 255'tir. 256 sayısını yazmak için 9 bit gerekir: 100000000₂.
1.2.5Kaç bit gerekir?
Önceki teoremin tersi de sık sorulur: N farklı şeye ayrı bir kod verilecekse en az kaç bit gerekir? Cevap, 2n ≥ N koşulunu sağlayan en küçük n'dir. Bu n, 1 bitten başlanıp kod sayısı N'ye ulaşana kadar bit eklenerek bulunur. Sunumdaki algoritma bu düşünceyi dört satırla yazar:
N = 58 (29 büyük + 29 küçük harf)
n = 1; kapasite = 2
kapasite < N iken: n = n + 1; kapasite = kapasite × 2
kapasite ≥ N → n bit yeterAlgoritmada kapasite, n bitle yazılabilecek kod sayısını tutar. Başlangıçta 1 bit ve 2 kod vardır. Kapasite N'den küçük kaldıkça bir bit eklenir ve kapasite iki katına çıkar. Kapasite N'ye ulaştığı ya da onu geçtiği anda döngü durur ve o anki n cevaptır.
Türk alfabesinde 29 harf vardır. Büyük ve küçük harfler ayrı kodlanırsa N = 58 farklı kod gerekir. En az kaç bit yeter?
| n | kapasite = 2n | kapasite < 58? | Karar |
|---|---|---|---|
| 1 | 2 | evet | yetmez, bit ekle |
| 2 | 4 | evet | yetmez, bit ekle |
| 3 | 8 | evet | yetmez, bit ekle |
| 4 | 16 | evet | yetmez, bit ekle |
| 5 | 32 | evet | yetmez, bit ekle |
| 6 | 64 | hayır | yeter, döngü durur |
Sonuç: 6 bit gerekir. 64 kodun 58'i kullanılır, 64 − 58 = 6 kod boşta kalır. 5 bit yetmez, çünkü 32 kodla 58 harfin ancak 32'si kodlanabilir.
Şekil 1.9 aynı sonucu çubuklarla gösterir. Çubukların her biri bir öncekinin iki katıdır ve 58 çizgisini ilk geçen çubuk 6 bitliktir. Gerçek bir metin yalnızca harflerden oluşmaz: on rakam, boşluk, nokta, virgül, soru işareti gibi noktalama işaretleri de kodlanmalıdır. Bunlar eklenince 64 kod yetmez ve 7 bit (128 kod) gerekir. İngilizce metinler için 1960'larda tanımlanan ASCII (American Standard Code for Information Interchange) kod tablosu bu yüzden 7 bitliktir. Tablonun 128 kodunun içine büyük ve küçük İngiliz harfleri, rakamlar, noktalama işaretleri ve bazı denetim karakterleri sığar.
Bu hesabın matematikteki karşılığı logaritmadır: gereken bit sayısı, log2 N sayısının yukarı yuvarlanmışıdır. log2 58 ≈ 5,86 olduğundan 6 bit gerekir. Logaritmayla rahat olmayan biri için 2'nin kuvvetlerini sırayla yazmak aynı sonucu verir ve hata yapma olasılığı daha düşüktür.
Kodlanacak değer sayısını en büyük değerle karıştırmak. 0'dan 100'e kadar sayılar kodlanacaksa değer sayısı 100 değil 101'dir. 26 = 64 yetmez, 27 = 128 ≥ 101 olduğu için 7 bit gerekir. Aynı soru 0'dan 127'ye kadar sayılar için sorulsaydı da cevap 7 bit olurdu; 0'dan 128'e kadar sayılar için ise 8 bit gerekirdi.
1.2.6Onluktan ikiliye dönüşüm
Ters yöndeki dönüşüm için en yaygın yöntem 2'ye bölme yöntemidir. Sayı art arda 2'ye bölünür ve her bölmede kalan not edilir. Kalan her zaman 0 ya da 1'dir: sayı çiftse 0, tekse 1. Bölüm 0 olunca bölme biter. Kalanlar son bölmeden ilk bölmeye doğru, yani ters sırayla okununca ikili sayı elde edilir.
Yöntem şu algoritmayla yazılabilir:
sayı ← N
bitler ← ""
sayı > 0 olduğu sürece tekrarla:
kalan ← sayı mod 2
bitler ← kalan + bitler (kalan sola eklenir)
sayı ← sayı div 2
yaz(bitler)Algoritmada mod bölümden kalanı, div tam sayı bölümünü verir: 45 mod 2 = 1, 45 div 2 = 22. Her yeni kalan, şimdiye kadar biriken bitlerin soluna eklenir. İlk bölmenin kalanı böylece en sağda, son bölmenin kalanı en solda kalır.
45 sayısını ikiliye çevirelim.
| Adım | Bölme | Bölüm | Kalan | Biriken bitler |
|---|---|---|---|---|
| 1 | 45 ÷ 2 | 22 | 1 | 1 |
| 2 | 22 ÷ 2 | 11 | 0 | 01 |
| 3 | 11 ÷ 2 | 5 | 1 | 101 |
| 4 | 5 ÷ 2 | 2 | 1 | 1101 |
| 5 | 2 ÷ 2 | 1 | 0 | 01101 |
| 6 | 1 ÷ 2 | 0 | 1 | 101101 |
Bölüm 6. adımda 0 olduğu için bölme biter. Sonuç: 45₁₀ = 101101₂. Denetim için basamak değerleri toplanır: 101101₂'de 1 olan basamaklar 32, 8, 4 ve 1'dir; 32 + 8 + 4 + 1 = 45.
Yöntemin neden çalıştığı da basit bir gözlemle açıklanır. Bir sayının 2'ye bölümünden kalan, ikili yazılışının en sağdaki bitidir: çift sayıların son biti 0, tek sayılarınki 1'dir. Sayıyı 2'ye bölüp kalanı atmak ise ikili yazılıştaki en sağ biti silmek demektir. 45 = 101101₂'dir. 2'ye bölününce 22 = 10110₂ elde edilir; son bit gitmiştir. Bölme sürdükçe her adımda bir bit daha okunur ve bitler sağdan sola doğru tek tek ortaya çıkar.
156 sayısını iki yolla ikiliye çevirelim.
1. yol: 2'ye bölme. 156 ÷ 2 = 78, kalan 0. 78 ÷ 2 = 39, kalan 0. 39 ÷ 2 = 19, kalan 1. 19 ÷ 2 = 9, kalan 1. 9 ÷ 2 = 4, kalan 1. 4 ÷ 2 = 2, kalan 0. 2 ÷ 2 = 1, kalan 0. 1 ÷ 2 = 0, kalan 1. Kalanlar sondan başa okununca 10011100₂ bulunur.
2. yol: büyük basamak değerlerinden çıkarma. 156'ya sığan en büyük 2 kuvveti 128'dir: 156 − 128 = 28. 28'e sığan en büyük kuvvet 16'dır: 28 − 16 = 12. Sonra 8: 12 − 8 = 4. Sonra 4: 4 − 4 = 0. Kullanılan değerler 128, 16, 8 ve 4'tür; bu basamaklara 1, ötekilere 0 yazılır: 1001 1100₂.
Sonuç: iki yol da 156₁₀ = 10011100₂ verir.
İkinci yol, basamak değerlerini iyi bilen biri için çoğunlukla daha hızlıdır. İlk yol ise hiç düşünmeden uygulanabilen mekanik bir tariftir ve bir programın da izleyebileceği biçimdedir. İki yolun sonucu her zaman aynıdır; biri ötekinin denetimi olarak kullanılabilir.
Kalanları ilk bölmeden son bölmeye doğru okumak. 45 için kalanlar sırasıyla 1, 0, 1, 1, 0, 1'dir ve bu sırayla yazılırsa 101101 çıkar. Bu yanlış okuma 45'te tesadüfen doğru sonuç verir, çünkü dizi tersten de aynıdır. 156 için kalanlar 0, 0, 1, 1, 1, 0, 0, 1'dir. Bu sırayla yazılan 00111001₂ = 57'dir ve yanlıştır. Doğru okuma sondan başadır: 10011100₂ = 156. Her dönüşümün sonunda basamak değerleriyle geri dönüp denetim yapmak bu hatayı hemen yakalar.
1.2.7Onaltılık gösterim
Uzun bit dizilerini okumak ve yazmak insan için zordur. 32 bitlik bir sayıda tek bir biti yanlış yazmak çok kolaydır. Bu yüzden bit dizileri çoğunlukla onaltılık (hexadecimal) sistemde kısaltılarak yazılır. Onaltılık sistemde 16 rakam vardır: 0–9 ve onların ardından 10–15 değerleri için A, B, C, D, E, F harfleri.
Onaltılığın kullanışlı olmasının nedeni, 16 = 24 olmasıdır. Dört bit tam olarak 16 farklı değer gösterir; yani her onaltılık rakam tam dört bite karşılık gelir. Bir bit dizisini onaltılığa çevirmek için hesap yapmak gerekmez: dizi sağdan başlayarak dörderli gruplara ayrılır ve her grup tek bir onaltılık rakamla yazılır.
| İkili | Onluk | Onaltılık | İkili | Onluk | Onaltılık |
|---|---|---|---|---|---|
| 0000 | 0 | 0 | 1000 | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | 10 | A |
| 0011 | 3 | 3 | 1011 | 11 | B |
| 0100 | 4 | 4 | 1100 | 12 | C |
| 0101 | 5 | 5 | 1101 | 13 | D |
| 0110 | 6 | 6 | 1110 | 14 | E |
| 0111 | 7 | 7 | 1111 | 15 | F |
- 45 → onaltılık. 45 = 101101₂'dir. Sekiz bite tamamlanır: 0010 1101. 0010 = 2, 1101 = D. Sonuç 2D₁₆. Denetim: 2 × 16 + 13 = 45.
- 255 → onaltılık. 255 = 1111 1111₂; iki grup da 1111 = F'dir. Sonuç FF₁₆. Bir baytın alabileceği en büyük değer iki onaltılık rakamla FF diye yazılır.
- Bir rengin kodu. Kırmızı = 59, yeşil = 130, mavi = 246 olan rengin bileşenleri onaltılığa çevrilir. 59 = 0011 1011₂ = 3B₁₆. 130 = 1000 0010₂ = 82₁₆. 246 = 1111 0110₂ = F6₁₆. Bileşenler yan yana yazılınca renk kodu 3B82F6 olur. Web sayfalarında renkler bu altı haneli onaltılık kodlarla yazılır.
Onaltılık gösterim yeni bir veri türü değildir; aynı bit dizisinin daha kısa bir yazılışıdır. Bellek adresleri, renk kodları ve Unicode karakter numaraları (örneğin “A” için U+0041) bu yüzden onaltılık yazılır. Aynı mantıkla üç bitlik gruplar da tek rakamla yazılabilir; buna sekizli (octal) gösterim denir: 101 101₂ = 55₈. Sayı tabanı dönüştürücü simülatöründe aynı sayının dört tabandaki yazılışları yan yana görülebilir.
Bitleri dörderli gruplara soldan başlayarak ayırmak. 101101₂ soldan gruplanırsa 1011 01 olur ve yanlış sonuç çıkar. Gruplama her zaman sağdan yapılır; soldaki eksik grup başına 0 eklenerek tamamlanır: 10 1101 → 0010 1101 → 2D.
1.2.8Transistörler
Bilgisayarın neden ikili sistemi kullandığı sorusunun cevabı donanımdadır. İşlemciler ve bellekler, transistör (transistor) adı verilen çok küçük elektronik parçalardan yapılır. Transistör, elektrik akımını denetleyen bir anahtar gibi çalışır. Bu anahtarı açan ya da kapatan mekanik bir kol değil, bir elektrik gerilimidir.
Transistör, bir ucuna (kapı) uygulanan gerilime göre iki ucu arasından akım geçirip geçirmediği değişen yarı iletken bir devre elemanıdır. Kapıya yeterli gerilim uygulanınca transistör iletime geçer ve akım akar; gerilim yoksa kesime girer ve akım akmaz. Bilgisayarlarda bu iki durum 1 ve 0 olarak yorumlanır.
Şekil 1.11 bu iki durumu bir lamba devresiyle gösterir. Bilgisayarın neden onluk değil ikili çalıştığı da buradan anlaşılır. Bir anahtarın yalnızca iki durumunu, açık ve kapalıyı, güvenilir biçimde ayırt etmek kolaydır. On farklı gerilim düzeyini birbirinden ayırmak ise çok daha zordur; küçük bir elektrik gürültüsü 6'yı 7'ye çevirebilir. İki durumlu sistemde gerilim biraz oynasa da “yüksek” ile “düşük” arasındaki fark büyük olduğu için okuma bozulmaz.
Tek bir transistör tek bir bit tutar ya da tek bir bit üzerinde çok basit bir iş yapar. Gücün kaynağı sayıdır. Transistörler birleştirilerek mantık kapıları, kapılar birleştirilerek toplayıcılar ve bellek hücreleri, onlar da birleştirilerek işlemciler kurulur. Günümüzün bir telefon işlemcisinde on milyarlarca transistör bulunur. Her biri saniyede milyarlarca kez açılıp kapanabilir. Milyarlarca basit anahtarın düzenli birlikteliği, video oynatmak ya da bir yapay zekâ modelini çalıştırmak gibi karmaşık işleri mümkün kılar.
0'ı “hiçbir şey” ya da “bilgi yok” sanmak. 0, 1 kadar anlamlı bir değerdir: transistörün kesimde olduğunu, yani belirli bir durumu bildirir. 01000001'deki altı sıfır, sayının 65 olması için en az iki birler kadar gereklidir.
1.3Veri temsili
Bit ve bayt, bilgisayarın bütün verileri yazdığı ortak alfabedir. Bu kesim, farklı veri türlerinin bu alfabeyle nasıl yazıldığını ve ne kadar yer kapladığını ele alır: sayılar ve metin, görüntüler, ses ve video. Ardından dosyaları küçültmenin iki yolu, kayıpsız ve kayıplı sıkıştırma anlatılır. Kesim, veri miktarını ölçen birimlerle ve hız ile boyut arasındaki bit–bayt farkıyla biter.
1.3.1Sayılar ve metin
Tam sayılar doğrudan ikili karşılıklarıyla saklanır. 13 sayısı bir baytta 00001101 olarak durur: 8 + 4 + 1 = 13. Eksi sayılar ve ondalıklı sayılar için ayrı ikili kodlama kuralları vardır. Örneğin 3,75 gibi ondalıklı bir sayı üç parçaya bölünerek saklanır: işaret, üs ve anlamlı basamaklar. Bu biçime kayan noktalı sayı (floating-point number) denir. Bu kuralların ayrıntısı bu notun kapsamı dışındadır. Bilinmesi gereken, her sayı türü için önceden kararlaştırılmış bir kuralın bulunduğudur.
Karakterler, yani harfler, rakamlar ve işaretler, bir kod tablosuyla sayıya çevrilir. Tabloda her karaktere bir numara verilmiştir. Bilgisayar bir harfi saklarken aslında o harfin numarasını saklar; ekrana yazarken de numaraya karşılık gelen harf şeklini çizer.
Karakter kümesi (character set), karakterlerle sayısal kodları eşleştiren tablodur. ASCII, 128 karakterlik 7 bitlik bir tablodur ve İngiliz alfabesini, rakamları ve noktalama işaretlerini kapsar. Unicode, dünyadaki hemen bütün yazı sistemlerini, matematik simgelerini ve emojileri kapsayan, bir milyondan fazla kod yeri tanımlayan evrensel karakter standardıdır. Unicode'un ilk 128 kodu ASCII ile aynıdır.
ASCII tablosunun düzeni bazı küçük hesapları kolaylaştırır. Büyük harfler 65'ten (A) başlar ve alfabe sırasıyla ardışıktır: B = 66, C = 67, …, Z = 90. Küçük harfler 97'den (a) başlar. Her küçük harfin kodu, büyüğünün kodundan tam 32 fazladır: a = 97 = 65 + 32. Rakam karakterleri 48'den başlar: “0” = 48, “1” = 49, …, “9” = 57. Burada önemli bir ayrım vardır. “7” karakterinin kodu 55'tir; 7 sayısı ise ikili olarak 00000111 diye saklanır. Klavyeden yazılan “7”, sayı olarak kullanılmadan önce dönüştürülmelidir.
“Kedi” kelimesi ASCII ile kaç bayt tutar ve bellekte hangi bitlerle saklanır?
| Karakter | Kod (onluk) | Bitler | Hesap |
|---|---|---|---|
| K | 75 | 01001011 | 64 + 8 + 2 + 1 |
| e | 101 | 01100101 | 64 + 32 + 4 + 1 |
| d | 100 | 01100100 | 64 + 32 + 4 |
| i | 105 | 01101001 | 64 + 32 + 8 + 1 |
Sonuç: dört karakter, her biri bir bayt, toplam 4 bayt (32 bit). K'nin kodu A'nın kodundan 10 fazladır, çünkü K alfabede A'dan 10 harf sonra gelir. Küçük e'nin kodu ise büyük E'nin (69) kodundan 32 fazladır: 69 + 32 = 101.
ASCII yalnızca İngiliz alfabesini kapsar; “ğ”, “ş”, “ı” gibi Türkçe harfler ASCII'de yoktur. Unicode bu sorunu bütün diller için çözer. Unicode'da her karakterin bir kod noktası (code point) vardır. Kod noktası “U+” ile başlayan onaltılık bir sayıyla yazılır: “A” = U+0041 (onluk 65), “Ğ” = U+011E (onluk 286), “€” = U+20AC, Çince “中” = U+4E2D. Kod noktalarının bellekte kaç baytla saklanacağını ise ayrı bir kodlama (encoding) kuralı belirler. Web'de en yaygın kodlama UTF-8'dir. UTF-8, ASCII karakterlerini tek baytla, Türkçe harfleri iki baytla, “€” ve “中” gibi karakterleri üç baytla yazar.
| Karakter | Kod noktası | Onluk | UTF-8 baytları (onaltılık) | Bayt sayısı |
|---|---|---|---|---|
| A | U+0041 | 65 | 41 | 1 |
| Ğ | U+011E | 286 | C4 9E | 2 |
| € | U+20AC | 8.364 | E2 82 AC | 3 |
| 中 | U+4E2D | 20.013 | E4 B8 AD | 3 |
Bu ayrımın pratik bir sonucu vardır. “Kedi” UTF-8'de de 4 bayttır. “Kağıt” ise beş karakter olduğu hâlde 7 bayttır: “K”, “a” ve “t” birer, “ğ” ve “ı” ikişer bayt tutar. Karakter sayısı ile bayt sayısı, ASCII dışı harfler kullanıldığında farklılaşır.
Kodlama düşüncesinin en önemli sonucu şudur: bir bit dizisinin anlamını, dizinin kendisi değil, onu okurken kullanılan kural belirler.
Şekil 1.12 bu durumu tek bir bayt üzerinde gösterir. Bellekteki 01000001 bitleri bir hesap programına göre 65 sayısıdır, bir metin düzenleyiciye göre “A” harfidir, bir resim programına göre bir pikselin koyu gri tonu olabilir. Bir dosya yanlış kodlamayla açıldığında Türkçe harflerin yerine “ı” ya da “ÅŸ” gibi anlamsız işaretler görülmesinin nedeni budur: baytlar doğrudur, ama yanlış kuralla okunmuştur.
“Bir karakter her zaman bir bayttır” demek. Bu yalnızca ASCII için doğrudur. UTF-8'de bir karakter 1 ile 4 bayt arasında yer tutar; Türkçe metinler bu yüzden karakter sayılarından biraz daha fazla bayt kaplar.
1.3.2Görüntüler
Ekranda görülen bir fotoğraf, yakından bakılınca küçük renkli karelerden oluşur. Her kareye piksel (pixel, “picture element” yani resim öğesi kısaltması) denir. Bir piksel, görüntünün tek renkle boyanmış en küçük parçasıdır. Görüntü bir piksel tablosu olarak saklanır: her satırda belirli sayıda piksel, her pikselde bir renk.
Çözünürlük (resolution), bir görüntünün yatay ve dikey piksel sayısıdır ve “genişlik × yükseklik” diye yazılır: 1920 × 1080 gibi. RGB renk modelinde her pikselin rengi kırmızı (red), yeşil (green) ve mavi (blue) üç bileşenin karışımıyla tanımlanır. Bileşenlerin her biri 0 ile 255 arasında bir sayıdır ve bir bayt yer tutar.
RGB modeli, ekranın ışığı nasıl ürettiğine dayanır. Ekrandaki her piksel aslında yan yana duran üç küçük ışık kaynağıdır: bir kırmızı, bir yeşil, bir mavi. Bileşenin değeri o ışığın parlaklığını belirler. 0 ışığın tamamen kapalı, 255 tam parlak olduğunu gösterir. Üç ışık da tam parlak yanınca göz beyaz görür: RGB(255, 255, 255). Üçü de kapalıysa siyah görülür: RGB(0, 0, 0). Yalnız kırmızı tam parlaksa renk saf kırmızıdır: RGB(255, 0, 0). Kırmızı ve yeşil birlikte yanınca sarı elde edilir: RGB(255, 255, 0). Üç bileşen eşitse renk bir gri tonudur; değer büyüdükçe gri açılır.
Şekil 1.13 çok küçük bir görüntü üzerinde bu düzeni gösterir. Görüntünün 8 sütunu ve 6 satırı vardır; toplam 48 piksel eder. Seçili mavi pikselde mavi bileşen en büyük değeri (246) taşır, kırmızı en küçüğü (59). Her bileşen bir bayt, yani sekiz bittir. Bir piksel üç bayt ettiğine göre bütün görüntü 48 × 3 = 144 bayt yer tutar. Gerçek bir fotoğrafta da hesap aynıdır; yalnızca piksel sayısı milyonlarca olur.
RGB'yi boya karıştırmaya benzetmek. Boyalar karıştıkça renk koyulaşır; kırmızı, yeşil ve mavi boya karışımı kahverengimsi bir koyu renk verir. Ekranda ise ışık karışır ve ışık eklendikçe renk açılır; üç ışığın tam karışımı beyazdır.
1.3.3Renk derinliği ve görüntü boyutu
Bir pikselin rengini yazmak için kaç bit kullanıldığına renk derinliği ya da bit derinliği (color depth, bit depth) denir. Bit derinliği, gösterilebilecek farklı renk sayısını belirler. Teorem 1.1'e göre b bitlik bir piksel 2b farklı renk alabilir.
| Bit / piksel | Farklı renk | Tipik kullanım |
|---|---|---|
| 1 | 21 = 2 | Siyah-beyaz çizim, faks, belge tarama |
| 8 | 28 = 256 | Gri tonlama ya da 256 renkli paletli görüntü (GIF) |
| 24 | 224 = 16.777.216 | Fotoğraf: R, G ve B için 8'er bit |
| 32 | 16,7 milyon renk + saydamlık | Arayüz grafikleri, PNG (alfa kanalı) |
24 bit, insan gözünün ayırt edebileceğinden fazla renk verir; fotoğraflar için standart derinlik budur. 32 bitte renk yine 24 bittir; kalan 8 bit alfa kanalı denen saydamlık bilgisini tutar. Alfa 0 ise piksel tamamen saydam, 255 ise tamamen örtücüdür. Bir uygulama simgesinin köşelerinin arka plan rengini göstermesi bu kanal sayesindedir.
Bit derinliği ve çözünürlük birlikte, sıkıştırılmamış bir görüntünün boyutunu belirler:
boyut (bayt) = genişlik × yükseklik × bit derinliği ÷ 8
Formüldeki ÷ 8, bit cinsinden toplamı bayta çevirir. Piksel başına bayt sayısı tam sayıysa (24 bit = 3 bayt gibi) hesap daha da kısalır: boyut = piksel sayısı × piksel başına bayt.
800 × 600 piksellik bir görüntünün sıkıştırılmamış boyutunu üç farklı bit derinliği için hesaplayalım. (1 KB = 1.024 bayt, 1 MB = 1.048.576 bayt alınmıştır.)
- Piksel sayısı: 800 × 600 = 480.000 piksel.
- 24 bit (3 bayt/piksel): 480.000 × 3 = 1.440.000 bayt. MB'ye çevirmek için 1.048.576'ya bölünür: ≈ 1,37 MB.
- 8 bit (1 bayt/piksel): 480.000 × 1 = 480.000 bayt; 480.000 ÷ 1.024 ≈ 468,75 KB.
- 1 bit: 480.000 ÷ 8 = 60.000 bayt; 60.000 ÷ 1.024 ≈ 58,6 KB.
Sonuç: aynı görüntü 24 bitle 1,37 MB, 8 bitle yaklaşık 469 KB, 1 bitle yaklaşık 58,6 KB tutar. 24 bitlik sürüm 1 bitlik sürümün tam 24 katıdır, çünkü piksel sayısı aynıdır ve yalnızca piksel başına bit sayısı değişmiştir.
Renk derinliği arttıkça renk geçişleri yumuşar, ama dosya büyür. 8 bitlik paletli bir görüntüde yalnızca 256 renk kullanılabildiği için gökyüzü gibi tonların yavaşça değiştiği bölgeler basamak basamak görünür. 24 bitte aynı geçiş göze kesintisiz gelir. Çözünürlüğün etkisi ise daha da büyüktür: genişlik ve yükseklik ikişer katına çıkarsa piksel sayısı, dolayısıyla boyut, dört katına çıkar.
Bit derinliğini bayt sanıp 8'e bölmeyi unutmak. 800 × 600 × 24 = 11.520.000 bulunur ve “11,5 milyon bayt” denirse sonuç sekiz kat büyük çıkar. 11.520.000 bit cinsindendir; bayta çevirmek için 8'e bölünür: 1.440.000 bayt.
1.3.4Ses ve video
Ses, havadaki basınç dalgalanmalarıdır. Mikrofon bu dalgalanmayı, zamanla sürekli değişen bir elektrik gerilimine çevirir. Bilgisayar sürekli bir dalgayı olduğu gibi saklayamaz; sonsuz sayıda noktası vardır. Bunun yerine dalga eşit aralıklarla ölçülür. Bu işleme örnekleme (sampling), her ölçüme bir örnek (sample) denir. Her ölçüm de belirli düzeylerden en yakınına yuvarlanarak bir tam sayıya çevrilir.
Şekil 1.14'ün üst kısmında dalga, eşit aralıklı 12 noktada ölçülmüştür. Dalganın tepesine yakın örnekler 7, çukuruna yakın örnekler 0 değerini almıştır. Bilgisayar dalganın kendisini değil, bu 12 sayıyı saklar. Ses yeniden çalınırken sayılar sırayla gerilime çevrilir ve hoparlör bu gerilimle titreşir.
Video, art arda gösterilen durağan görüntülerden oluşur. Her görüntüye kare (frame) denir. Kareler yeterince hızlı gösterilince göz onları ayrı ayrı göremez ve hareket algılar. Saniyede gösterilen kare sayısına fps (frames per second) denir. Sinema geleneksel olarak 24 fps, televizyon ve internet videoları çoğunlukla 30 fps kullanır; oyunlarda 60 fps ve üstü yaygındır. Videonun sesi, görüntü karelerinden ayrı bir kanalda saklanır ve oynatılırken karelerle eş zamanlı çalınır.
1920 × 1080 çözünürlükte, 24 bit renkli ve 30 fps olan bir video sıkıştırılmadan saklansaydı bir dakikası ne kadar yer tutardı? (Ses yok sayılır; 1 GiB = 230 = 1.073.741.824 bayt.)
- Bir kare: 1920 × 1080 = 2.073.600 piksel; × 3 bayt = 6.220.800 bayt.
- Bir saniye: 30 kare × 6.220.800 = 186.624.000 bayt, yani saniyede yaklaşık 178 MB.
- Bir dakika: 60 saniye × 186.624.000 = 11.197.440.000 bayt.
- GiB'ye çevirme: 11.197.440.000 ÷ 1.073.741.824 ≈ 10,43 GiB.
Sonuç: sıkıştırmasız bir dakikalık Full HD video yaklaşık 10,4 GiB tutar. Bir dakikası 100 MB civarında olan sıradan bir video dosyası bundan yüz kat küçüktür; fark sıkıştırmadan gelir.
1.3.5Sesi sayısallaştırma
Analog bir ses sinyali üç adımda sayısal veriye dönüşür: örnekleme, nicemleme ve kodlama. Sunumdaki algoritma bu adımları ve boyut formülünü şöyle sıralar:
analog sinyal: sürekli dalga
örnekle: eşit aralıklarla ölç
nicemle: en yakın düzeye yuvarla (3 bit → 0…7)
kodla: her düzeyi 3 bitle yaz
boyut = örnekleme hızı × bit derinliği × kanal × süre
kayıplı sıkıştır (MP3)Örnekleme, sinyalin eşit zaman aralıklarıyla ölçülmesidir; saniyedeki ölçüm sayısına örnekleme hızı (sampling rate) denir ve hertz (Hz) ile ölçülür. Nicemleme (quantization), her ölçümün önceden belirlenmiş sonlu sayıdaki düzeyden en yakınına yuvarlanmasıdır; ölçüm ile düzey arasındaki farka nicemleme hatası denir. Kodlama, her düzeyin numarasının ikili sayıyla yazılmasıdır. Bir örneği yazmak için kullanılan bit sayısına bit derinliği denir.
Adımları sunumdaki küçük örnek üzerinde izleyelim. Sinyal eşit aralıklarla sekiz kez ölçülmüştür. Ölçümler ondalıklıdır: 4,76; 6,55; 6,55; 4,76; 2,24; 0,45; 0,45; 2,24. İki ölçüm arasında sinyalin nasıl değiştiği kaydedilmez; örnekleme bu bilgiyi kaçınılmaz olarak kaybeder.
Nicemleme için 3 bit kullanılsın. Teorem 1.1'e göre 3 bit 23 = 8 düzey tanır: 0, 1, …, 7. Her ölçüm en yakın tam sayıya yuvarlanır (Şekil 1.15, alt).
| Örnek | Ölçüm | Düzey | Nicemleme hatası | 3 bitlik kod |
|---|---|---|---|---|
| 1 | 4,76 | 5 | 0,24 | 101 |
| 2 | 6,55 | 7 | 0,45 | 111 |
| 3 | 6,55 | 7 | 0,45 | 111 |
| 4 | 4,76 | 5 | 0,24 | 101 |
| 5 | 2,24 | 2 | 0,24 | 010 |
| 6 | 0,45 | 0 | 0,45 | 000 |
| 7 | 0,45 | 0 | 0,45 | 000 |
| 8 | 2,24 | 2 | 0,24 | 010 |
Tablo 1.9 üç adımın sonucunu birlikte verir. Nicemleme hatası en çok 0,45 düzeydir. En yakın düzeye yuvarlamada hata hiçbir zaman yarım düzeyi geçemez, çünkü her ölçüm iki düzeyin arasında durur ve yakın olana en çok 0,5 uzaktadır. Kodlama adımında her düzey 3 bitlik ikili sayıyla yazılır: 5 → 101, 7 → 111, 2 → 010, 0 → 000. Sekiz örnek 8 × 3 = 24 bit tutar.
Bu küçük örnek, gerçek seste iki noktada büyür. Birincisi, örnekleme hızıdır. Saniyede sekiz ölçüm insan sesini anlaşılır kılmaya yetmez; gerçek ses kayıtları saniyede binlerce, CD kalitesinde 44.100 örnek alır. İkincisi, bit derinliğidir. 3 bitlik 8 düzey kaba bir merdiven gibidir; CD 16 bit kullanır ve 216 = 65.536 düzey tanır. Bu kadar ince bir merdivende nicemleme hatası kulağın duyamayacağı kadar küçülür.
boyut (bit) = örnekleme hızı × bit derinliği × kanal sayısı × süre (s)
CD kalitesinde (44.100 Hz, 16 bit, 2 kanal: sol ve sağ) bir dakikalık ses kaç bayt tutar? Aynı müzik 128 kbit/s MP3 olarak kaydedilirse ne kadar yer kaplar?
- Saniyedeki bit sayısı: 44.100 × 16 × 2 = 1.411.200 bit/s.
- Bir dakika: 1.411.200 × 60 = 84.672.000 bit.
- Bayta çevirme: 84.672.000 ÷ 8 = 10.584.000 bayt. 1 MB = 1.048.576 bayt alınırsa ≈ 10,1 MB.
- MP3: 128 kbit/s = 128.000 bit/s. Bir dakikada 128.000 × 60 = 7.680.000 bit, yani 7.680.000 ÷ 8 = 960.000 bayt ≈ 0,92 MB.
- Oran: 10.584.000 ÷ 960.000 ≈ 11.
Sonuç: CD kalitesinde bir dakika ≈ 10,1 MB, aynı dakikanın 128 kbit/s MP3'ü ≈ 0,92 MB'dir; MP3 yaklaşık 11 kat küçüktür.
MP3 bu küçülmeyi kayıplı sıkıştırmayla sağlar: kulağın zor fark ettiği ayrıntıları, örneğin yüksek bir sesin hemen ardından gelen çok kısık sesleri, atar. Atılan ayrıntı bir daha geri gelmez.
Kanal sayısını unutmak. Stereo (iki kanallı) bir kayıtta sol ve sağ hoparlör için ayrı örnekler saklanır; boyut mono kaydın iki katıdır. CD hesabında 2 çarpanı atlanırsa sonuç ≈ 5 MB çıkar ve yanlıştır.
1.3.6Kayıpsız ve kayıplı sıkıştırma
Sıkıştırmasız görüntü, ses ve video çok yer kaplar. Bu yüzden dosyalar çoğunlukla sıkıştırılarak (compression) saklanır. Sıkıştırma, aynı veriyi daha az bitle yazmanın yoludur. İki temel türü vardır ve aralarındaki fark, açılan dosyanın özgün dosyayla aynı olup olmadığıdır.
Kayıpsız sıkıştırma (lossless compression), açıldığında özgün veriyi bit bit aynen geri veren sıkıştırmadır; verideki tekrarları kısaltarak çalışır. Kayıplı sıkıştırma (lossy compression), insanın göz ve kulağının zor fark ettiği ayrıntıları kalıcı olarak atar; açıldığında özgüne yakın ama ondan farklı bir kopya verir.
| Kayıpsız | Kayıplı | |
|---|---|---|
| Açılınca | Özgün veri bit bit aynen geri gelir | Özgüne yakın bir kopya elde edilir |
| Yöntem | Tekrarları kısaltır (RLE, ZIP) | Göz ve kulağın zor fark ettiği ayrıntıyı atar |
| Örnek biçimler | ZIP, PNG, FLAC | JPEG, MP3, MP4 (H.264) |
| Tipik küçülme | Çoğunlukla 2–3 kat | 10 kat ve daha fazlası |
| Uygun veri | Metin, program, tablo, tıbbi görüntü | Fotoğraf, müzik, video |
Hangi türün seçileceğini verinin doğası belirler. Bir programın tek bir biti bile değişirse program çalışmaz ya da yanlış çalışır. Bir metin dosyasında tek bir bitin değişmesi bir harfi başka bir harfe çevirir. Bir banka tablosunda 1.000 TL'nin 1.008 TL'ye dönüşmesi kabul edilemez. Bu veriler yalnızca kayıpsız sıkıştırılır. Tıbbi görüntülerde de küçük bir ayrıntı tanı için önemli olabileceğinden kayıpsız biçimler tercih edilir. Fotoğraf, müzik ve videoda ise birkaç pikselin rengindeki ya da çok kısık bir sesteki küçük değişiklik fark edilmez. Bu veriler kayıplı sıkıştırılarak on kat ve daha fazla küçültülür.
Kayıplı sıkıştırmanın gizli bir maliyeti vardır. Kayıplı bir dosya açılıp düzenlenip yeniden kaydedildiğinde sıkıştırma yeniden yapılır ve her seferinde biraz daha ayrıntı atılır. Aynı JPEG fotoğrafın defalarca düzenlenip kaydedilmesi, görüntüde giderek artan bulanıklık ve kare kare bozulmalar yaratır. Atılan ayrıntı geri gelmez. Bu yüzden üzerinde çalışılan özgün dosyalar kayıpsız biçimde saklanır ve kayıplı sürüm yalnızca paylaşım için üretilir.
Bir JPEG dosyasını PNG olarak kaydetmenin kaybolan kaliteyi geri getireceğini sanmak. PNG kayıpsızdır, ama yalnızca kendisine verilen veriyi korur. JPEG sıkıştırmasında atılmış ayrıntı artık hiçbir yerde yoktur; PNG ancak bozulmuş hâli bozulmadan saklar.
1.3.7Çalışma uzunluğu kodlaması (RLE)
Kayıpsız sıkıştırmanın en basit örneği çalışma uzunluğu kodlamasıdır (run-length encoding, RLE). Düşünce şudur: aynı değer art arda birçok kez tekrarlanıyorsa, değeri tek tek yazmak yerine “kaç kez tekrarlandığı” ile “değerin kendisi” yazılır. Art arda gelen aynı değerlerden oluşan bloğa koşu (run) denir. Örneğin “AAAAABBB” dizisi (5, A)(3, B) diye yazılır.
RLE, bir diziyi soldan sağa okuyup her koşuyu (uzunluk, değer) çiftiyle yazan kayıpsız sıkıştırma yöntemidir. Okuma sırasında bir sayaç ve geçerli değer tutulur. Gelen öğe geçerli değerle aynıysa sayaç bir artar. Farklıysa biten koşu (sayaç, geçerli değer) olarak çıktıya yazılır, sayaç 1'e döner ve yeni değer geçerli değer olur. Dizi bitince açık kalan son koşu da yazılır.
Bir görüntünün 16 piksellik bir satırı iki renkten oluşuyor: M (mavi) ve B (beyaz). Satır, piksel numaraları 0'dan 15'e olmak üzere MMMMMMBBBBMMMBBB'dir. Her piksel bir bayt tutar; satır 16 bayttır.
| Piksel | Renk | Olay | Sayaç | Çıktı |
|---|---|---|---|---|
| 0 | M | ilk piksel, geçerli renk M | 1 | — |
| 1–5 | M | aynı renk, sayaç her pikselde artar | 6 | — |
| 6 | B | renk değişti, koşu biter | 1 | (6, M) |
| 7–9 | B | aynı renk | 4 | (6, M) |
| 10 | M | renk değişti | 1 | (6, M) (4, B) |
| 11–12 | M | aynı renk | 3 | (6, M) (4, B) |
| 13 | B | renk değişti | 1 | (6, M) (4, B) (3, M) |
| 14–15 | B | aynı renk | 3 | (6, M) (4, B) (3, M) |
| (son) | — | satır bitti, açık koşu yazılır | — | (6, M) (4, B) (3, M) (3, B) |
Sonuç: dört çift elde edilir. Her çift 2 bayttır (bir bayt uzunluk, bir bayt renk): 4 × 2 = 8 bayt. Özgün satır 16 bayttı; RLE onu yarıya indirmiştir. Denetim için uzunluklar toplanır: 6 + 4 + 3 + 3 = 16 piksel.
Çözme işlemi kodlamanın tersidir. Her çift okunur ve değer, uzunluk kadar yazılır: (6, M) → MMMMMM, (4, B) → BBBB, (3, M) → MMM, (3, B) → BBB. Elde edilen satır özgün satırla birebir aynıdır; hiçbir bilgi kaybolmamıştır. RLE bu yüzden kayıpsızdır.
Şekil 1.17'nin alt kısmı yöntemin sınırını gösterir. Renk her pikselde değişirse hiçbir koşu birden uzun olmaz. 16 pikselin her biri için (1, renk) çifti yazılır: 16 × 2 = 32 bayt. “Sıkıştırılmış” veri özgünün iki katına çıkmıştır. RLE ancak uzun tekrarların bol olduğu verilerde işe yarar: siyah-beyaz taranmış belgeler, düz renkli çizimler, simgeler. Fotoğraflarda komşu pikseller nadiren tam aynı renktir; bu yüzden fotoğraflar için başka yöntemler kullanılır.
Dizinin sonundaki koşuyu yazmayı unutmak. RLE bir koşuyu ancak renk değiştiğinde yazar. Son koşudan sonra renk değişmez, dizi biter. Bu son adım atlanırsa örnekteki çıktı (6, M) (4, B) (3, M)'de kalır ve son üç beyaz piksel kaybolur; çözülen satır 13 pikseldir.
1.3.8Bellek ölçü birimleri
Önceki hesaplarda bayt sayıları milyonlara, milyarlara ulaştı. Bu kadar büyük sayıları rahat yazmak için daha büyük birimler kullanılır. Birimler bitten başlayıp her basamakta büyüyen bir merdiven oluşturur.
| Birim | Açılım | İkili karşılığı | Bayt olarak |
|---|---|---|---|
| bit | binary digit | 0 ya da 1 | — |
| bayt (B) | byte | 8 bit | 1 |
| KB | kilobyte | 1.024 bayt | 210 = 1.024 |
| MB | megabyte | 1.024 KB | 220 = 1.048.576 |
| GB | gigabyte | 1.024 MB | 230 = 1.073.741.824 |
| TB | terabyte | 1.024 GB | 240 ≈ 1,1 × 1012 |
| PB | petabyte | 1.024 TB | 250 ≈ 1,13 × 1015 |
Tablonun en altta kalan iki basamağı farklıdır: bit ile bayt arasında 8 kat vardır. Bayttan sonraki her basamak ise öncekinin 1.024 katıdır. 1.024 sayısı rastgele seçilmemiştir; 210'dur ve 1.000'e çok yakındır. Bellekler ikili adreslerle çalıştığı için kapasiteleri doğal olarak 2'nin kuvvetleri olur. “Kilo” ön eki bu yüzden bellek dünyasında 1.000 değil 1.024 anlamında kullanılmaya başlanmıştır.
Birimlerin büyüklüğünü sezmek için tanıdık örnekler yardımcı olur. Tek bir karakter 1 bayttır. Düz metinden oluşan yarım sayfa birkaç KB tutar. Bir telefon fotoğrafı yaklaşık 3 MB, HD kalitesinde bir film yaklaşık 4 GB'dir. Dizüstü bilgisayarların diskleri çoğunlukla 512 GB ile 1 TB arasındadır. Büyük bir bulut hizmetinin veri merkezleri ise petabaytlarca veri saklar.
1 KB = 1.024 B, 1 MB = 1.024 KB, 1 GB = 1.024 MB alınarak:
- 3 KB kaç bittir? 3 × 1.024 = 3.072 bayt; 3.072 × 8 = 24.576 bit.
- 128 GB'lık bir telefona 4 MB'lık fotoğraflardan kaç tane sığar? 128 × 1.024 = 131.072 MB; 131.072 ÷ 4 = 32.768 fotoğraf. (İşletim sistemi ve uygulamaların kapladığı yer bu hesapta yok sayılmıştır.)
- 5.000.000 bayt kaç MB'dir? 5.000.000 ÷ 1.048.576 ≈ 4,77 MB.
Büyük birimden küçüğe geçerken çarpılır, küçükten büyüğe geçerken bölünür. Bayt ile bit arasında çarpan 8, öteki her basamakta 1.024'tür.
1.024 ile 1.000 arasındaki küçük fark, büyük birimlerde büyür ve bir karışıklığa yol açar. Uluslararası Elektroteknik Komisyonu (IEC), iki anlamı ayırmak için ikili birimlere ayrı adlar vermiştir. 1.024 bayta KiB (kibibayt), 220 bayta MiB (mebibayt), 230 bayta GiB (gibibayt) denir. Bu tanımda KB, MB, GB ön ekleri ondalık anlamlarını korur: 1 GB = 109 = 1.000.000.000 bayt. Disk üreticileri kapasiteyi bu ondalık tanımla yazar. Bazı işletim sistemleri ise boyutu ikili birimle hesaplar ama ekranda yine “GB” diye gösterir.
Kutusunda “1 TB” yazan bir disk, işletim sisteminde neden yaklaşık 931 GB görünür?
- Üretici ondalık tanımı kullanır: 1 TB = 1012 = 1.000.000.000.000 bayt.
- İşletim sistemi bayt sayısını 1 GiB = 230 = 1.073.741.824 bayta böler: 1.000.000.000.000 ÷ 1.073.741.824 ≈ 931,3.
- Ekranda “931 GB” yazar; doğru adı “931 GiB”dir.
Sonuç: diskte eksik bayt yoktur. Bayt sayısı iki sayımda da aynıdır; yalnızca birimin tanımı farklıdır. Fark birim büyüdükçe artar: KB'de %2,4, GB'de %7,4, TB'de yaklaşık %10'dur.
1 TB ile 931 GB arasındaki farkı “biçimlendirmede kaybolan yer” ya da “bozuk sektör” sanmak. Biçimlendirmenin ve dosya sisteminin kapladığı yer çok küçüktür. Farkın neredeyse tamamı birim tanımından gelir; iki sayı aynı bayt miktarını farklı birimlerle yazar.
1.3.9Bit mi bayt mı? Hız ve boyut
Birim kısaltmalarında büyük ve küçük harf aynı şey değildir. Küçük b biti, büyük B baytı gösterir. 100 Mb (megabit) ile 100 MB (megabayt) arasında tam 8 kat fark vardır. Bu ayrım en çok internet hızı ile dosya boyutu birlikte konuşulurken önem kazanır, çünkü ikisi geleneksel olarak farklı birimlerle ölçülür.
Veri aktarım hızı, saniyede aktarılan bit sayısıyla ölçülür: bit/s, kbit/s, Mbit/s (kısaca Mbps) gibi. Hız birimlerindeki ön ekler ondalıktır: 1 Mbps = 106 = 1.000.000 bit/s. Dosya ve disk boyutu ise bayt ile ölçülür: KB, MB, GB.
Bir dosyanın ne kadar sürede ineceği hesaplanırken iki birim aynı dile çevrilmelidir. Ya hız bayta çevrilir (8'e bölünür) ya da boyut bite çevrilir (8 ile çarpılır). İki yol da aynı sonucu verir.
100 Mbps hızındaki bir bağlantıyla 3 GB'lık (3 × 109 bayt) bir dosya en iyi durumda kaç saniyede iner?
| Adım | Hesap | Sonuç |
|---|---|---|
| Hız bayta çevrilir | 100.000.000 ÷ 8 | 12.500.000 bayt/s = 12,5 MB/s |
| Dosya bite çevrilir | 3 × 109 bayt × 8 | 24 × 109 bit |
| Süre | 24 × 109 ÷ 108 | 240 s = 4 dakika |
Aynı sonuç birinci satırdan da bulunur: 3.000.000.000 ÷ 12.500.000 = 240 s. “100 Mbps ile saniyede 100 MB iner” diye düşünülseydi süre 30 saniye bulunurdu; bu, gerçeğin sekizde biridir.
240 saniye en iyi durumdur. Gerçekte süre daha uzundur. Ağda gönderilen her veri parçasına adres ve denetim bilgisi eklenir; bu protokol ek yükü, hattın bir kısmını kullanır. Aynı hattı paylaşan başka cihazlar da hızı böler. Sunucunun kendisi de sınırlı hızda veri gönderebilir. Bu yüzden 100 Mbps'lik bir bağlantıda indirme hızı çoğunlukla 10–11 MB/s civarında görülür.
İndirme programının gösterdiği “11 MB/s” değerini internet paketindeki “100 Mbps” ile karşılaştırıp hızın düşük olduğunu sanmak. 11 MB/s = 88 Mbps'tir; ek yük ve paylaşım düşünülünce 100 Mbps'lik bir hat için iyi bir değerdir.
1.4Veri işleme
Bilgisayar veriyi yalnızca saklamaz, onunla hesap yapar ve kararlar verir. Bu kesim işlemcinin yaptığı temel işlem türlerini bir arada ele alır. Ardından aynı işlemlerin, verinin iletim sırasında bozulup bozulmadığını anlamak için nasıl kullanıldığını parite biti örneğiyle gösterir.
1.4.1Aritmetik ve mantıksal işlemler
Programların yaptığı işlerin çoğu dört türlü işlemin birleşimidir.
| Tür | Ne yapar? | İşleçler | Sonucun türü |
|---|---|---|---|
| Aritmetik | Sayılarla hesap yapar | + − × ÷ % | Sayı |
| Karşılaştırma | İki değerin ilişkisini sınar | > < ≥ ≤ == != | Doğru / yanlış |
| Mantıksal | Koşulları birleştirir ya da tersine çevirir | AND, OR, NOT | Doğru / yanlış |
| Karar | Sonuca göre programın izleyeceği yolu seçer | eğer … ise | Bir yol |
Aritmetik işleçlerden % işareti yüzde değil, bölümden kalan anlamına gelir: 17 % 5 = 2, çünkü 17'nin içinde üç tane 5 vardır ve 2 artar. Bu işlem, onluktan ikiliye dönüşümde kullanılan “mod” işleminin aynısıdır. Karşılaştırma işleçlerinde == “eşit mi?” ve != “eşit değil mi?” anlamındadır. Tek = işareti programlama dillerinde atama için kullanıldığından eşitlik sorusu iki eşittir işaretiyle yazılır.
Mantıksal işlemlerin girdisi ve çıktısı doğru ya da yanlıştır. Bilgisayarda doğru 1, yanlış 0 ile gösterilir. Üç temel mantıksal işlem vardır.
AND (ve): iki koşulun ikisi de doğruysa doğru, en az biri yanlışsa yanlış verir. OR (veya): koşullardan en az biri doğruysa doğru, ikisi de yanlışsa yanlış verir. NOT (değil): tek bir koşulu tersine çevirir; doğruyu yanlış, yanlışı doğru yapar.
| A | B | A AND B | A OR B | NOT A |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
Tablo 1.13 dört satırla bütün durumları kapsar, çünkü iki koşulun alabileceği yalnızca dört değer bileşimi vardır. AND sütununda yalnızca son satır 1'dir: “ve” bağlacı iki tarafın da sağlanmasını ister. OR sütununda yalnızca ilk satır 0'dır: “veya” bağlacı tek bir tarafın sağlanmasıyla yetinir. Günlük dildeki “ve” ile “veya” da aynı anlamdadır. “Sınavı geçen ve devamı tam olan öğrenci” iki koşulu birden ister. “Kimliği ya da pasaportu olan yolcu” ise ikisinden birini yeterli bulur.
Bir derste kural şöyledir: ortalama = (vize + final) / 2; ortalaması 60 ve üstü olan ve devam koşulunu sağlayan öğrenci geçer. İki öğrenciyi izleyelim.
| Adım | 1. öğrenci | 2. öğrenci |
|---|---|---|
| Veri | vize 60, final 80, devam_ok = doğru | vize 40, final 90, devam_ok = yanlış |
| Aritmetik | (60 + 80) / 2 = 70 | (40 + 90) / 2 = 65 |
| Karşılaştırma | 70 ≥ 60 → 1 | 65 ≥ 60 → 1 |
| Mantıksal | 1 AND 1 → 1 | 1 AND 0 → 0 |
| Karar | “geçti” | “kaldı” |
İkinci öğrencinin ortalaması yeterlidir, ama devam koşulu sağlanmadığı için AND işlemi 0 verir. Kural “veya” ile yazılsaydı (1 OR 0 = 1) bu öğrenci de geçerdi. Bağlacın seçimi kuralın anlamını değiştirir.
Şekil 1.21 ve Örnek 1.18, dört işlem türünün bir zincir hâlinde nasıl çalıştığını gösterir. Aritmetik işlem sayıyı üretir. Karşılaştırma bu sayıyı doğru/yanlış değerine çevirir. Mantıksal işlem birden fazla doğru/yanlış değerini birleştirir. Karar adımı da son değere göre yolu seçer. Bu dört işin hepsi ALU'da yapılır. Karar adımında işlemci, sonuca göre programın bir sonraki komutunu seçer.
“Eşit” ile “büyük ya da eşit”i karıştırmak. 60 puanın geçer sayılması isteniyorsa koşul “puan > 60” değil “puan ≥ 60” olmalıdır. “puan > 60” yazılırsa tam 60 alan öğrenci kalır. Sınır değerlerin koşulun hangi tarafında kaldığı her zaman ayrıca denetlenmelidir.
1.4.2Parite biti ile hata yakalama
Veri bir kablodan ya da kablosuz bağlantıdan geçerken elektriksel gürültü bazı bitleri bozabilir. 1 olan bit 0'a ya da 0 olan bit 1'e dönebilir. Alıcı, kendisine ulaşan bitlerin doğru olup olmadığını nereden bilecektir? En basit çözüm, veriye denetim amaçlı fazladan bir bit eklemektir.
Parite biti (parity bit), veri bitlerine eklenen ve toplam 1 sayısını önceden kararlaştırılmış bir kurala uyduran denetim bitidir. Çift parite kuralında parite biti, veri bitleri ile parite bitindeki 1'lerin toplam sayısı çift olacak biçimde seçilir. Veri bitlerindeki 1 sayısı çiftse parite biti 0, tekse 1'dir. Alıcı bütün bitlerdeki 1'leri sayar; sayı tek çıkarsa hata vardır.
Kuralın bir benzeri de tek paritedir: orada toplam 1 sayısı tek olmalıdır. İki kuralın gücü aynıdır; gönderici ile alıcının aynı kuralı kullanması yeter. Aşağıdaki örnek çift pariteyi kullanır.
ASCII'de “Y” harfinin kodu 89'dur; yedi bitle 1011001 diye yazılır. Bu harf çift pariteyle gönderiliyor.
- Gönderici 1'leri sayar. 1011001'de 1'ler 1., 3., 4. ve 7. bitlerdedir: dört tane. Dört çift olduğu için parite biti 0'dır. Gönderilen sekiz bit: 10110010.
- İletimde bir bit bozulur. Gürültü 3. biti 1'den 0'a çevirir. Alıcıya 10010010 ulaşır.
- Alıcı 1'leri sayar. 10010010'da üç tane 1 vardır. Üç tek bir sayıdır; çift parite kuralı bozulmuştur. Alıcı hatayı fark eder ve veriyi yeniden ister.
Sonuç: tek bitlik hata yakalanır. Ama alıcı yalnızca bir hata olduğunu bilir; hangi bitin bozulduğunu bilemez. Bu yüzden hatayı kendisi düzeltemez, verinin yeniden gönderilmesini ister.
Şekil 1.22'nin son satırı parite bitinin sınırını gösterir. 3. ve 4. bitler birlikte bozulursa alıcıya 10000010 ulaşır. Bu dizide iki tane 1 vardır; iki çift bir sayıdır. Alıcı kuralın sağlandığını görür ve bozuk veriyi doğru sanır. Genel kural şudur: bir bitin bozulması 1 sayısını bir artırır ya da bir azaltır, yani tek/çift durumunu değiştirir. İki bitin bozulması durumu iki kez değiştirir ve başa döndürür. Parite biti bu yüzden yalnızca tek sayıda bit hatasını yakalar; çift sayıda hata gözden kaçar.
| Bozulan bit | Alınan dizi | 1 sayısı | Alıcının kararı | Gerçek durum |
|---|---|---|---|---|
| Yok | 10110010 | 4 (çift) | Hata yok | Doğru |
| 3. bit | 10010010 | 3 (tek) | Hata var | Yakalandı |
| 3. ve 4. bit | 10000010 | 2 (çift) | Hata yok | Gözden kaçtı |
| 1., 3. ve 4. bit | 00000010 | 1 (tek) | Hata var | Yakalandı |
Parite biti çok ucuz bir denetimdir: her yedi ya da sekiz bit için tek bir fazladan bit. Hataların seyrek ve tek tek geldiği ortamlarda işe yarar. Gürültünün bitleri öbek hâlinde bozduğu ortamlarda ise daha güçlü yöntemler kullanılır. Bu yöntemler daha fazla denetim biti ekleyerek birden çok hatayı yakalar, bazıları hatanın yerini bulup düzeltir de. Bellek modüllerinde kullanılan hata düzelten kodlar (error-correcting code, ECC) ve internet paketlerindeki sağlama toplamları bu türdendir.
Parite bitini hesaplarken veri bitlerinin değerini (89) ya da bit sayısını (7) kullanmak. Parite yalnızca 1 olan bitlerin sayısına bakar. 1011001'in değeri 89 tektir, ama içindeki 1 sayısı dört, yani çifttir; parite biti 0'dır.
1.5Bilgisayar türleri
Bütün bilgisayarlar aynı çalışma döngüsünü kullanır, ama farklı işler için farklı biçimlerde üretilir. Bir hava durumu modelini çalıştıran makine ile bir çamaşır makinesinin denetim kartı, aynı ilkelerle çalışan iki çok farklı bilgisayardır. Bu kesim başlıca bilgisayar türlerini, her birinin hangi ihtiyaca cevap verdiğini ve birbirlerinden nerede ayrıldıklarını anlatır.
1.5.1Kapasite ve kullanım amacına göre sınıflandırma
Bilgisayarlar en çok iki ölçüte göre sınıflandırılır: kapasite (ne kadar hesap gücü, bellek ve depolama sunduğu) ve kullanım amacı (kime, hangi iş için hizmet ettiği). Tablo 1.15 başlıca türleri bu iki ölçüte göre özetler.
| Tür | Öncelikli amaç | Tipik örnek |
|---|---|---|
| Süper bilgisayar | Yoğun bilimsel hesaplama | İklim modeli, fizik benzetimi |
| Ana bilgisayar | Çok sayıda güvenilir işlem | Bankacılık, sigorta |
| Sunucu | Ağ üzerinden hizmet | Web sitesi, e-posta, veri tabanı |
| Kişisel bilgisayar | Bireysel kullanım | Masaüstü, dizüstü |
| Gömülü sistem | Belirli bir cihaz işlevi | Klima, otomobil, çamaşır makinesi |
| İnce istemci | Merkezi sisteme erişim | Kütüphane, banka şubesi terminali |
| Mobil cihaz | Taşınabilir kullanım | Telefon, tablet |
| Kuantum bilgisayar | Özel problem sınıfları | Kimya benzetimi, araştırma |
Bu sınıflandırmanın kesin sınırları yoktur. Güçlü bir masaüstü bilgisayar, üzerine bir web sitesi kurulunca sunucu görevi görür. Bir akıllı telefon hem mobil cihaz hem kişisel bilgisayardır. Bir otomobilde onlarca gömülü bilgisayar bulunur ve bunlar bir ağ üzerinden birbirleriyle konuşur. Bir cihazın hangi türe girdiği, donanımından çok o anda nasıl kullanıldığına bağlıdır.
1.5.2Süper ve ana bilgisayarlar
Kapasite ölçeğinin en üstünde iki tür vardır. İkisi de çok güçlü ve pahalıdır, ama farklı bir şeyi en iyi yapmak için tasarlanmıştır.
Süper bilgisayar (supercomputer), çok yüksek hesaplama gücü gerektiren tek bir büyük problemi, binlerce işlemciye bölüştürerek paralel çözen bilgisayardır. Ana bilgisayar (mainframe), çok sayıda kullanıcıdan gelen küçük işlemleri eş zamanlı, kesintisiz ve güvenilir biçimde yürütmek için tasarlanmış bilgisayardır.
Şekil 1.23 iki türün farkını iş yüküyle gösterir. Bir süper bilgisayara bir iklim modeli verildiğinde dünya atmosferi milyonlarca küçük hücreye bölünür. Her işlemci birkaç hücrenin sıcaklığını, basıncını ve rüzgârını hesaplar ve sonuçlarını komşularıyla paylaşır. İş, tek bir bilgisayarda aylar sürecekken birkaç saatte biter. Süper bilgisayarlar fizik benzetimlerinde, ilaç ve malzeme araştırmalarında, büyük yapay zekâ modellerinin eğitiminde de kullanılır. Güçleri saniyede yapılan kayan noktalı işlem sayısıyla (FLOPS, floating-point operations per second) ölçülür.
Ana bilgisayarın işi farklıdır. Bir bankada her saniye binlerce kart ödemesi, havale ve bakiye sorgusu gelir. Bu işlemlerin her biri tek başına çok küçüktür; zor olan, hepsini aynı anda, hiç hata yapmadan ve hiç durmadan işlemektir. Bir ödeme sisteminin bir saatlik kesintisi büyük kayıplara yol açar. Ana bilgisayarlar bu yüzden yedekli donanımla kurulur: bir parça bozulduğunda sistem durmadan çalışmayı sürdürür ve parça çalışırken değiştirilebilir.
| Öncelik | Süper bilgisayar | Ana bilgisayar |
|---|---|---|
| Temel amaç | Hesaplama hızı | İşlem hacmi ve süreklilik |
| Tipik iş yükü | Büyük bilimsel hesap | Çok sayıda kurumsal işlem |
| Kullanıcı | Az sayıda araştırmacı | Binlerce eş zamanlı kullanıcı |
| Başarı ölçüsü | Saniyedeki işlem (FLOPS) | Saniyedeki hareket sayısı, kesintisiz çalışma süresi |
Ana bilgisayarı “eski, yavaş süper bilgisayar” sanmak. İki tür aynı ölçeğin farklı noktaları değildir; farklı amaçlara göre tasarlanmıştır. Bir bankanın işi için süper bilgisayar, bir iklim modeli için ana bilgisayar uygun değildir.
1.5.3Sunucular ve ince istemciler
Sunucu (server), ağ üzerinden başka bilgisayarlara web, e-posta, dosya, veri tabanı ya da uygulama hizmeti veren bilgisayardır. Hizmet alan bilgisayara istemci (client) denir. İnce istemci (thin client), işlemin çoğunu sunucuya bırakan, kendi üzerinde yalnızca görüntüleme ve girdi alma işini yapan basit bir istemcidir.
Sunucu ile istemci arasındaki konuşma bir istek–yanıt (request–response) düzeniyle yürür. İstemci bir şey ister; sunucu isteği işler ve sonucu geri gönderir. Bir web sayfası açıldığında da, bir e-posta indirildiğinde de bu düzen işler.
Bir üniversite kütüphanesindeki ince istemciden not listesi açılıyor. Şekil 1.24 üç adımı gösterir:
- İstek. İstemci 1, “not listesi” isteğini ağ üzerinden sunucuya gönderir. İstemcinin yaptığı yalnızca ekrandaki tıklamayı bir isteğe çevirmektir.
- İşlem. Asıl iş sunucuda yapılır: veri tabanı sorgulanır, notlar bulunur, ortalamalar hesaplanır ve sonuç bir ekran olarak hazırlanır.
- Yanıt. Hazır ekran istemciye döner. İnce istemci onu yalnızca gösterir ve kullanıcının bir sonraki tıklamasını bekler.
Çalışma döngüsü burada iki bilgisayar arasında bölüşülmüştür: giriş ve çıkış istemcide, işlem ve depolama sunucudadır.
İnce istemcinin üstünlüğü yönetim kolaylığıdır. Yüz ince istemcili bir kütüphanede programlar yalnızca sunucuya kurulur ve yalnızca orada güncellenir. İstemcilerde veri saklanmadığı için biri bozulduğunda ya da çalındığında veri kaybolmaz; yerine yenisi takılır. Yerel donanım ucuz ve basit olabilir. Zayıf yanı ise bağımlılıktır: ağ ya da sunucu çökerse yüz istemcinin hepsi birden işe yaramaz hâle gelir.
Sunucuyu yalnızca büyük, özel bir makine sanmak. “Sunucu” bir donanım türünden çok bir roldür. Evdeki bir dizüstü, üzerinde bir dosya paylaşım programı çalışırken öteki bilgisayarlar için sunucudur. Veri merkezlerindeki sunucular ise bu rolü sürekli üstlenmek için güçlü, yedekli ve dolaplara sığacak biçimde üretilmiştir.
1.5.4Kişisel ve mobil cihazlar
Kişisel bilgisayar (personal computer), tek bir kişinin kullanımı için tasarlanmış genel amaçlı bilgisayardır. Kişisel ve mobil cihazlar, aynı genel amaçlı bilgisayarın farklı kullanım koşullarına uyarlanmış biçimleridir.
| Cihaz | Öne çıkan özellik | Bedeli |
|---|---|---|
| Masaüstü | Sabit kullanım, genişletilebilir donanım, yüksek performans | Taşınamaz, daha çok enerji harcar |
| Dizüstü | Taşınabilir yapı, batarya | Donanım yükseltmesi sınırlı |
| Tablet | Dokunmatik ekran, hafif kullanım | Uzun metin yazmak ve yoğun iş zor |
| Telefon | Mobil bağlantı, sensörler (GPS, ivmeölçer, kamera), uygulamalar | Küçük ekran, sınırlı batarya |
Masaüstü bilgisayarda kasanın içi açılabilir; ekran kartı, bellek ya da disk değiştirilip yükseltilebilir. Bol enerji ve geniş soğutma alanı sayesinde aynı fiyata en yüksek performansı verir. Dizüstü bilgisayar aynı parçaları küçük bir gövdeye ve bataryaya sığdırır; performansın bir kısmı taşınabilirlik ve pil ömrü için feda edilir. Tablet ve telefon bu yönde daha da ileri gider: enerji tüketimi o kadar düşük tutulur ki işlemci soğutma fanı olmadan çalışır.
Telefonu öteki kişisel cihazlardan ayıran asıl özellik sensörleridir. Konum alıcısı, ivmeölçer, jiroskop, kamera, mikrofon ve parmak izi okuyucusu, telefonu dünyayı sürekli ölçen bir giriş cihazına çevirir. Harita uygulamasının yönü göstermesi, ekranın telefon yan çevrilince dönmesi ve adım sayarın çalışması bu sensörler sayesindedir.
Cihaz seçiminde performans tek ölçüt değildir. Taşınabilirlik, enerji tüketimi, ekran boyutu ve asıl kullanım amacı birlikte düşünülür. Uzun raporlar yazacak ve programlama yapacak bir öğrenci için iyi bir klavye ve geniş ekranlı bir dizüstü, en hızlı telefondan daha uygundur.
1.5.5Gömülü bilgisayarlar
Gömülü sistem (embedded system), daha büyük bir cihazın içine yerleştirilmiş ve o cihazın belirli bir görevini yerine getiren bilgisayardır. Çoğunlukla işlemci, bellek ve giriş–çıkış birimlerini tek bir yongada birleştiren bir mikrodenetleyici (microcontroller) üzerine kurulur.
Gömülü bilgisayarlar sayıca en yaygın bilgisayar türüdür. Bir otomobilde motoru, frenleri ve hava yastıklarını denetleyen onlarca gömülü bilgisayar vardır. Çamaşır makinesi, mikrodalga fırın, klima, akıllı saat, tıbbi ölçüm cihazı ve trafik lambası birer gömülü bilgisayar içerir. Bu bilgisayarların ortak özellikleri şunlardır:
- Tek bir işi yaparlar ve programları cihaz üretilirken yüklenir.
- Düşük güç tüketirler ve sınırlı bellek, sınırlı hesap gücüyle çalışırlar.
- Güvenilirlik ve gerçek zamanlı tepki önemlidir: hava yastığı denetimi çarpışmayı milisaniyeler içinde algılayıp karar vermelidir.
- Kullanıcı, cihazın içinde bir bilgisayar olduğunu çoğunlukla fark etmez.
Gömülü bir bilgisayar, çalışma döngüsünü bir denetim döngüsü biçiminde sürekli tekrarlar: ölç, karar ver, uygula, yeniden ölç. Klima örneğinde giriş birimi bir sıcaklık sensörü, çıkış birimi ise kompresörü açıp kapatan bir eyleyicidir (actuator).
Klimanın hedef sıcaklığı 24 °C'dir ve kural şudur: ölçülen sıcaklık hedeften büyükse kompresör açılır, değilse kapanır. Sensör art arda 28, 26 ve 24 °C ölçüyor.
| Tur | Ölçüm (giriş) | Koşul (işlem) | Kompresör (çıkış) | Oda |
|---|---|---|---|---|
| 1 | 28 °C | 28 > 24 → doğru | AÇIK | soğur |
| 2 | 26 °C | 26 > 24 → doğru | AÇIK | soğur |
| 3 | 24 °C | 24 > 24 → yanlış | KAPALI | soğuma durur |
Üçüncü turda 24, 24'ten büyük değildir, ona eşittir; “büyüktür” koşulu yanlış olur ve kompresör kapanır. Döngü burada bitmez. Sensör ölçmeyi sürdürür; oda ısınıp sıcaklık yeniden 24'ü geçince kompresör tekrar açılır.
Bu basit kuralın pratikte bir kusuru vardır. Sıcaklık 24,0 ile 24,1 arasında gidip gelirse kompresör çok sık açılıp kapanır ve yıpranır. Gerçek klimalarda bu yüzden iki eşik kullanılır: örneğin sıcaklık 25'i geçince açılır, 23'ün altına inince kapanır. Arada kalan bölgede kompresör önceki durumunu korur. Bu küçük değişiklik, gömülü sistemlerde yazılımın donanımın ömrünü doğrudan etkilediğini gösterir.
Gömülü bilgisayarın döngüsünün bir kez çalışıp bittiğini sanmak. Bir hesap programı sonucu verip durur; gömülü bir denetim programı ise cihaz açık olduğu sürece hiç durmadan ölçmeye ve karar vermeye devam eder.
1.5.6Kuantum bilgisayarlar
Şimdiye kadar anlatılan bütün bilgisayarlar, bilgiyi 0 ya da 1 olan bitlerle işler. Kuantum bilgisayarlar ise kuantum fiziğinin kurallarına dayanan farklı bir bilgi birimi kullanır.
Qubit (quantum bit, kuantum biti), ölçülmeden önce 0 ve 1 durumlarının bir birleşiminde bulunabilen bilgi birimidir. Qubit ölçüldüğünde 0 ya da 1 sonucunu verir; hangisinin çıkacağı, birleşimdeki ağırlıklara bağlı bir olasılıkla belirlenir. Kuantum bilgisayar (quantum computer), qubitlerle hesap yapan bilgisayardır.
Kuantum bilgisayarlar belirli problem sınıflarında klasik bilgisayarlardan çok farklı hesaplama yöntemleri sunar. Moleküllerin ve malzemelerin davranışını benzetmek, bazı optimizasyon problemleri ve bazı şifreleme yöntemlerinin çözümü bu sınıflar arasında incelenir. Özellikle büyük sayıları asal çarpanlarına ayırma problemi, bugün yaygın kullanılan bazı şifreleme sistemlerinin güvenliğinin dayandığı problem olduğu için yakından izlenir.
Bununla birlikte kuantum bilgisayarlar günlük kullanımda klasik bilgisayarların yerini almış değildir ve yakın gelecekte de genel amaçlı bir yerine geçme beklenmez. Qubitler çevreden gelen en küçük etkiyle bozulur; bu yüzden çoğu kuantum bilgisayar mutlak sıfıra yakın sıcaklıklarda soğutularak çalıştırılır. Kelime işlemek, internette gezinmek ya da bir tabloyu hesaplamak gibi işlerde kuantum bilgisayarın hiçbir üstünlüğü yoktur. Kuantum bilgisayar, klasik bilgisayarın daha hızlı bir sürümü değil, belirli problemler için tasarlanmış farklı bir araçtır.
Qubitin “aynı anda bütün cevapları deneyip doğrusunu seçtiğini” sanmak. Ölçüm her zaman tek bir sonuç verir. Kuantum algoritmaları, yanlış cevapların olasılığını azaltıp doğru cevabın olasılığını artıracak biçimde dikkatle tasarlanır; bu yalnızca belirli problemlerde mümkündür.
1.6Bilgi teknolojileri
Önceki kesimler bilgisayarın içine baktı: bitlere, işlemlere, donanım türlerine. Bu kesim dışarıya, bilgisayarların insanlar ve kurumlarla birlikte oluşturduğu sistemlere bakar. Veriyi bilgiye dönüştüren bu sistemlerin bütününe bilgi teknolojileri denir.
1.6.1Bilgi teknolojisi nedir?
Bilgi teknolojisi (information technology, BT), veriyi toplamak, işlemek, saklamak ve iletmek için kullanılan sistemlerin bütünüdür. Bir BT sisteminin dört teknik bileşeni vardır: donanım (fiziksel cihazlar), yazılım (programlar ve işletim sistemleri), veri (işlenen ham değerler) ve iletişim (ağlar ve veri aktarımı).
Şekil 1.27 BT sisteminin yalnızca bilgisayardan oluşmadığını vurgular. Bir hastanenin hasta kayıt sistemi düşünülsün. Donanım sunucular, bilgisayarlar ve yazıcılardır. Yazılım kayıt programı ve veri tabanıdır. Veri hasta bilgileri, tahliller, reçetelerdir. İletişim, binalar arasındaki ağdır. Ama sistem, kayıtları giren sekreterler, onları okuyan doktorlar ve hangi bilgiyi kimin görebileceğini belirleyen kurallar olmadan çalışmaz. Sistemin dış halkasındaki insanlar, süreçler ve güvenlik kuralları, teknik bileşenler kadar önemlidir. En iyi donanım bile, kullanıcı şifresini bir kâğıda yazıp ekrana yapıştırıyorsa güvenli değildir.
1.6.2Veri ve bilgi arasındaki fark
Veri ve bilgi günlük dilde çoğunlukla aynı anlamda kullanılır. Bilgisayar biliminde ise aralarında açık bir fark vardır ve bu fark bütün BT sistemlerinin varlık nedenini açıklar.
Veri, ham ölçüm, sayı, metin ya da kayıttır; bağlam olmadan anlamı belirsiz kalabilir. Bilgi, verinin düzenlenmesi, işlenmesi ve bir bağlam içinde yorumlanmasıyla ortaya çıkan, karar vermeye yarayan anlamlı sonuçtur.
Bir kâğıtta yalnızca şu üç sayı yazıyor: 38, 41, 39. Bu sayılar nasıl bilgiye dönüşür?
- Ham veri. 38, 41, 39 yalnızca sayılardır. Ne ölçüldüğü bilinmedikçe anlamları yoktur: yaş, sınav puanı ya da hız olabilirler.
- Bağlam. Bunların bir hastanın gün içindeki üç ateş ölçümü olduğu, birimin °C olduğu eklenir. Artık sayıların neyi gösterdiği bellidir.
- İşlem. Ortalama hesaplanır: (38 + 41 + 39) / 3 = 118 / 3 ≈ 39,3.
- Bilgi. “Hastanın ortalama ateşi 39,3 °C'dir; ateş yüksektir.” Bu cümleye dayanarak karar verilebilir: hastaya ateş düşürücü verilir.
Şekil 1.28 dönüşümün adımlarını tek bir çizgide toplar. Bilgisayar bu adımlardan yalnızca işlem kısmını yapar: toplar ve böler. Sayıların ateş ölçümü olduğunu, 39,3 °C'nin “yüksek” sayılması gerektiğini bilen insandır. Bağlamı ekleyen ve sonucu yorumlayan insan olmadan bilgisayarın çıktısı yine yalnızca bir sayıdır. Aynı 39,3 sayısı bir oda sıcaklığı olsaydı yorum bambaşka olurdu.
Ne kadar çok veri toplanırsa o kadar çok bilgi elde edileceğini sanmak. Bağlamı belirsiz, düzensiz ya da hatalı veri, ne kadar çok olursa olsun bilgi vermez; yanlış yorumlara bile yol açabilir. Bilgi, verinin miktarından değil, doğru düzenlenip yorumlanmasından doğar.
1.6.3Günlük yaşamda bilgi teknolojileri
Bilgi teknolojileri bugün hemen her alanda gündelik işlerin bir parçasıdır. Birkaç örnek, aynı çalışma döngüsünün farklı alanlarda nasıl göründüğünü gösterir.
- Eğitim: çevrim içi dersler, sayısal ders kaynakları ve öğrenme platformları. Bir öğrenci bilgi sistemi notları toplar (giriş), ortalamaları hesaplar (işlem), transkripti gösterir (çıkış) ve kayıtları yıllarca saklar (depolama).
- Sağlık: elektronik hasta kayıtları, görüntüleme sistemleri (röntgen, MR) ve hasta takibi. Bir hastanın tahlil sonuçları farklı hastanelerden aynı kayda erişilebilir.
- Finans: bankacılık, ödeme sistemleri ve işlem güvenliği. Bir kart ödemesi saniyeler içinde birkaç ülkedeki bilgisayarlardan geçerek onaylanır.
- İş ve eğlence: kurumsal iletişim, iş süreçlerinin otomasyonu, oyunlar ve medya hizmetleri. Bir müzik uygulaması dinlenen şarkılardan yola çıkarak yeni şarkılar önerir.
Bu alanların hepsinde BT'nin katkısı benzerdir: veriyi daha hızlı toplamak, daha doğru işlemek, daha uzun süre saklamak ve gereken kişiye daha çabuk ulaştırmak.
1.6.4Veri yaşam döngüsü
Veri bir BT sisteminde rastgele dolaşmaz; belirli aşamalardan geçer. Bu aşamaların bütününe veri yaşam döngüsü (data life cycle) denir.
Veri yaşam döngüsünün dört aşaması vardır. Toplama: veri insanlardan, makinelerden ya da sensörlerden alınır. İşleme: hatalı veri ayıklanır, hesaplar yapılır. Saklama: veri dosyada, veri tabanında ya da bulutta korunur. Sunum: sonuç rapor, tablo, grafik ya da uygulama ekranıyla paylaşılır. Sunulan sonuca göre verilen kararlar yeni veri toplanmasını başlatır ve döngü yeniden döner.
Bir hava istasyonunun sensörü dört sıcaklık ölçümü gönderiyor: 21,4 · −99 · 22,1 · 23 (°C). Sensör, ölçüm yapamadığında −99 değerini “arıza” kodu olarak gönderir.
- Toplama. Dört değer sensörden alınır.
- İşleme. −99 gerçek bir sıcaklık değil, arıza kodudur; atılır. Kalan üç ölçümün ortalaması alınır: (21,4 + 22,1 + 23) / 3 = 66,5 / 3 ≈ 22,17, yani yaklaşık 22,2 °C.
- Saklama. Ölçümler ve ortalama, zaman bilgisiyle birlikte veri tabanına kaydedilir.
- Sunum. Günlük sıcaklık grafiği bir web sayfasında yayımlanır. Grafiği izleyen bir çiftçi sulama saatini buna göre ayarlar; bu karar yeni ölçümlerin toplanmasıyla sınanır.
−99 atılmasaydı ortalama (21,4 − 99 + 22,1 + 23) / 4 = −32,5 / 4 ≈ −8,1 °C çıkardı. Bu sayı yaz ortasında hiçbir anlam taşımaz. İşleme aşamasındaki ayıklama, verinin bilgiye dönüşmesi için şarttır.
Şekil 1.29 döngünün kapalı bir halka olduğunu gösterir. Veri yaşam döngüsü, bilgisayarın giriş–işlem–çıkış–depolama döngüsüne çok benzer; ama ölçeği farklıdır. Bilgisayarın döngüsü tek bir makinede saniyenin binde biri içinde döner. Veri yaşam döngüsü ise bir kurumun bütün sistemlerine yayılır ve günler, aylar, hatta yıllar sürebilir.
Hatalı veriyi “yok saymak” yerine sıfır yazmak. −99 atılacağına 0 olarak hesaba katılırsa ortalama (21,4 + 0 + 22,1 + 23) / 4 ≈ 16,6 °C çıkar ve yine yanlıştır. Eksik ya da hatalı bir ölçüm ortalamaya hiç girmemelidir; bölünen sayı da ölçüm sayısı değil, geçerli ölçüm sayısıdır.
1.6.5Avantajlar ve sorumluluklar
Bilgi teknolojileri önemli kolaylıklar getirir:
- Hız ve otomasyon: veriler insan eliyle yapılabilecek olandan milyonlarca kat hızlı işlenir; tekrarlanan görevler, örneğin bütün öğrencilerin ortalamalarının hesaplanması, kendiliğinden yapılır.
- Erişim ve iletişim: bilgiye farklı yerlerden ulaşmak ve onu paylaşmak kolaylaşır; bir doktor başka bir şehirdeki hastanın tahlillerini görebilir.
Aynı kolaylıklar yeni sorumluluklar da doğurur:
- Mahremiyet ve güvenlik: kişisel veriler yetkisiz erişime ve kayba karşı korunmalıdır. Bir sağlık kaydının ya da banka bilgisinin sızması, kişiye uzun süreli zarar verir. Türkiye'de kişisel verilerin işlenmesi 6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ile düzenlenir.
- Doğruluk ve etik: yanlış veri ve önyargılı sistemler hatalı sonuç üretebilir. Geçmişteki önyargılı kararlardan öğrenen bir yazılım, aynı önyargıyı hızla ve büyük ölçekte tekrarlayabilir.
Güvenlik bu yüzden yalnızca teknik bir konu değildir. En güçlü şifreleme bile, kullanıcı şifresini bir sahte e-postaya yazıyorsa koruma sağlamaz. Bir BT sisteminin güvenliği; donanım ve yazılım kadar, onu kullanan insanların bilgisine, kurumun kurallarına ve bu kuralların ne kadar uygulandığına da bağlıdır. Teknolojik kolaylık, veriyi doğru, güvenli ve sorumlu kullanma yükümlülüğünü ortadan kaldırmaz.
1.6.6Bilgi teknolojilerinin geleceği
Bugün bilgi teknolojilerinin gelişimini dört alan belirgin biçimde yönlendirir.
| Alan | Kısa tanım |
|---|---|
| Yapay zekâ | Veriden örüntü öğrenen karar destek ve üretim sistemleri |
| Nesnelerin interneti | Sensörlü cihazların ağ üzerinden veri paylaşması |
| Bulut bilişim | Hesaplama ve depolama kaynaklarının ağ üzerinden sağlanması |
| Büyük veri analitiği | Yüksek hacimli ve çeşitli verilerden anlamlı sonuç çıkarılması |
Bu dört alan çoğunlukla tek bir sistemde birlikte çalışır. Şekil 1.30 bunu akıllı bir sulama sistemiyle örnekler.
Tarladaki sensör, nesnelerin internetinin bir parçasıdır: toprak nemini ölçer ve ağ üzerinden gönderir. Ölçümler bulutta, yani çiftçinin kendi bilgisayarında değil, ağ üzerinden kiralanan sunucularda saklanır. Büyük veri analitiği, aynı bölgedeki binlerce tarlanın nem, hava ve ürün verilerini karşılaştırır. Yapay zekâ bu karşılaştırmadan öğrendiklerine dayanarak “şimdi sula” kararını verir ve vana açılır. Sulamadan sonra yeni ölçümler gelir ve döngü yeniden başlar. Bu sistem de özünde veri yaşam döngüsünün ve bilgisayarın temel çalışma döngüsünün büyük ölçekli bir uygulamasıdır.
Yeni teknolojiler yeni soruları da beraberinde getirir. Veri merkezlerinin harcadığı enerji giderek artıyor. Teknolojiye erişimi olmayanlar, hizmetlerin sayısallaşmasıyla geride kalabilir. Daha çok cihazın ağa bağlanması saldırı yüzeyini genişletir. Yapay zekânın verdiği kararların hesabını kimin vereceği hâlâ tartışılır. Bilgi teknolojilerinin geleceği yalnızca teknik ilerlemeyle değil; enerji, erişilebilirlik, güvenlik ve etik sorularına verilecek cevaplarla da şekillenecektir.
1.7Özet
- Bilgisayar, aldığı verileri program komutlarına göre işleyen elektronik bir sistemdir. Her işte aynı dört aşamayı kullanır: giriş, işlem, çıkış ve depolama. Depolama işlemle iki yönlü konuşur: sonuç yazılır, gerektiğinde geri okunur.
- Giriş birimleri fiziksel olayları bitlere çevirir. İşlemcide kontrol birimi komut sırasını yönetir, ALU hesap ve karşılaştırma yapar, yazmaçlar üzerinde çalışılan değerleri tutar.
- RAM hızlı ama geçicidir; güç kesilince içeriği silinir. SSD ve sabit disk kalıcıdır. “Kaydet”, belgeyi RAM'den kalıcı depolamaya kopyalar.
- Bilgisayarda bütün veri türleri bit dizileriyle temsil edilir; 8 bit 1 bayt eder. Bir bit dizisinin anlamını, onu okuyan kural (kodlama) belirler.
- n bit 2n farklı değer gösterir (işaretsiz 0 … 2n − 1). N değer için 2n ≥ N olan en küçük n gerekir: 58 harf için 6 bit.
- İkiliden onluğa dönüşümde 1 olan bitlerin basamak değerleri toplanır. Onluktan ikiliye dönüşümde sayı art arda 2'ye bölünür ve kalanlar sondan başa okunur: 45 = 101101₂. Onaltılık rakamların her biri dört bite karşılık gelir: 45 = 2D₁₆.
- Transistör iki durumlu bir anahtardır; iletim 1, kesim 0 olarak yorumlanır. İki durumu ayırt etmek güvenilir olduğu için bilgisayarlar ikili çalışır.
- Metin ASCII ya da Unicode kodlarıyla, görüntü RGB bileşenli piksellerle saklanır. Sıkıştırılmamış görüntü boyutu = genişlik × yükseklik × bit derinliği ÷ 8 bayttır.
- Ses örnekleme, nicemleme ve kodlama ile sayıya dönüşür; boyut = örnekleme hızı × bit derinliği × kanal × süredir. CD kalitesinde bir dakika ≈ 10,1 MB'dir. Video, saniyede belirli sayıda (fps) gösterilen karelerden oluşur.
- Sıkıştırma kayıpsız (ZIP, PNG; özgün veri aynen geri gelir) ya da kayıplı (JPEG, MP3; ayrıntı atılır) olabilir. RLE art arda tekrarları (uzunluk, değer) çiftleriyle yazar; uzun tekrarlarda küçültür, sık değişen veride büyütür.
- Bayttan sonraki her birim öncekinin 1.024 katıdır (KiB, MiB, GiB); disk üreticileri ise ondalık birim kullanır, bu yüzden 1 TB ≈ 931 GiB görünür. Ağ hızı bit/s, dosya boyutu bayt ile ölçülür; 100 Mbps = 12,5 MB/s'dir.
- AND iki koşulun ikisini de, OR en az birini ister; NOT koşulu tersine çevirir. Aritmetik, karşılaştırma, mantıksal işlem ve karar bir zincir hâlinde çalışır.
- Parite biti tek sayıda bit hatasını yakalar ama yerini bulamaz; çift sayıda hata gözden kaçar.
- Bilgisayar türlerini kullanım amacı, kapasite ve çalışma ortamı ayırır: süper bilgisayar hız, ana bilgisayar süreklilik, sunucu ağ hizmeti, gömülü sistem tek bir cihaz görevi için tasarlanır. Kuantum bilgisayar belirli problemler için farklı bir araçtır.
- Bilgi teknolojileri donanım, yazılım, veri ve iletişimle birlikte insanlardan, süreçlerden ve güvenlik kurallarından oluşur. Bilgisayar veriyi işler; bağlamı ekleyip bilgiye dönüştüren insandır. Veri; toplama, işleme, saklama ve sunum aşamalarından oluşan bir yaşam döngüsünden geçer.
| Soru | Kural | Örnek |
|---|---|---|
| n bit kaç değer? | 2n | 8 bit → 256 |
| N değer için kaç bit? | 2n ≥ N olan en küçük n | 58 → 6 bit |
| İkiliden onluğa | 1 olan bitlerin basamak değerlerinin toplamı | 01000001₂ = 64 + 1 = 65 |
| Onluktan ikiliye | Art arda 2'ye bölme; kalanlar sondan başa okunur | 45 = 101101₂ |
| İkiliden onaltılığa | Sağdan dörderli gruplama | 0010 1101₂ = 2D₁₆ |
| Görüntü boyutu | genişlik × yükseklik × bit derinliği ÷ 8 | 800 × 600, 24 bit → 1.440.000 bayt |
| Ses boyutu | örnekleme hızı × bit derinliği × kanal × süre ÷ 8 | CD, 1 dk → 10.584.000 bayt |
| İndirme süresi | boyut (bit) ÷ hız (bit/s) | 3 GB, 100 Mbps → 240 s |
1.8Kavram listesi
Terimlerin İngilizce karşılıkları ve öteki sunumlardaki kullanımları terim sözlüğünde bulunur.
- bilgisayar computer
- veri data
- bilgi information
- giriş birimi input unit
- çıkış birimi output unit
- depolama storage
- merkezi işlem birimi (CPU) central processing unit
- kontrol birimi control unit
- aritmetik-mantık birimi (ALU) arithmetic logic unit
- yazmaç register
- RAM (rastgele erişimli bellek) random access memory
- geçici / kalıcı volatile / non-volatile
- bit bit
- bayt byte
- ikili binary
- onluk decimal
- onaltılık hexadecimal
- basamak / basamak değeri digit / place value
- transistör transistor
- karakter kümesi character set
- ASCII ASCII
- Unicode Unicode
- kodlama encoding
- piksel pixel
- çözünürlük resolution
- renk derinliği color depth
- örnekleme / örnek sampling / sample
- örnekleme hızı sampling rate
- nicemleme quantization
- kare frame
- kayıpsız sıkıştırma lossless compression
- kayıplı sıkıştırma lossy compression
- çalışma uzunluğu kodlaması (RLE) run-length encoding
- KB / MB / GB / TB kilobyte / megabyte / gigabyte / terabyte
- KiB / MiB / GiB kibibyte / mebibyte / gibibyte
- aritmetik işlem arithmetic operation
- karşılaştırma comparison
- mantıksal işlem logical operation
- parite biti parity bit
- süper bilgisayar supercomputer
- ana bilgisayar mainframe
- sunucu server
- istemci client
- ince istemci thin client
- istek / yanıt request / response
- kişisel bilgisayar personal computer
- mobil cihaz mobile device
- gömülü sistem embedded system
- mikrodenetleyici microcontroller
- sensör sensor
- kuantum bilgisayar quantum computer
- qubit (kuantum biti) qubit
- bilgi teknolojisi (BT) information technology
- veri yaşam döngüsü data life cycle
- mahremiyet privacy
- yapay zekâ artificial intelligence
- nesnelerin interneti Internet of Things
- bulut bilişim cloud computing
- büyük veri big data
1.9Kendini Dene
10110110₂ sayısı onluk sistemde kaçtır? Onaltılık yazılışı nedir?
Cevap
1 olan bitlerin basamak değerleri 128, 32, 16, 4 ve 2'dir: 128 + 32 + 16 + 4 + 2 = 182. Dörderli gruplar 1011 = B ve 0110 = 6'dır; onaltılık yazılış B6₁₆'dır. Denetim: 11 × 16 + 6 = 182.
100 sayısı 2'ye bölme yöntemiyle ikiliye çevrilince hangi dizi elde edilir? Sonuç basamak değerleriyle nasıl denetlenir?
Cevap
100 ÷ 2 = 50 kalan 0; 50 ÷ 2 = 25 kalan 0; 25 ÷ 2 = 12 kalan 1; 12 ÷ 2 = 6 kalan 0; 6 ÷ 2 = 3 kalan 0; 3 ÷ 2 = 1 kalan 1; 1 ÷ 2 = 0 kalan 1. Kalanlar sondan başa okunur: 1100100₂. Denetim: 64 + 32 + 4 = 100.
Bir fakültede 0 ile 99 arasında numaralanmış 100 laboratuvar dolabı var. Her dolabın numarasını ikili kodlamak için en az kaç bit gerekir? Kaç kod boşta kalır?
Cevap
Kodlanacak değer sayısı 100'dür. 26 = 64 < 100 olduğu için 6 bit yetmez; 27 = 128 ≥ 100 olduğu için 7 bit gerekir. 128 − 100 = 28 kod boşta kalır.
640 × 480 piksellik, 24 bit renkli bir görüntü sıkıştırılmadan kaç bayt tutar? Kaç KB eder (1 KB = 1.024 bayt)? Aynı görüntü 8 bitlik gri tonlamaya çevrilirse boyut ne olur?
Cevap
Piksel sayısı 640 × 480 = 307.200. 24 bit = 3 bayt olduğundan 307.200 × 3 = 921.600 bayt; 921.600 ÷ 1.024 = 900 KB. 8 bitte piksel başına 1 bayt kalır: 307.200 bayt = 300 KB, yani üçte biri.
44.100 Hz örnekleme hızı ve 16 bit derinlikle yapılmış 30 saniyelik mono (tek kanallı) bir ses kaydı kaç bayt tutar?
Cevap
44.100 × 16 × 1 × 30 = 21.168.000 bit; ÷ 8 = 2.646.000 bayt. 1 MB = 1.048.576 bayt alınırsa ≈ 2,52 MB. Kayıt stereo olsaydı boyut iki katına, 5.292.000 bayta çıkardı.
BBBMMMMMMMBB satırı (B = beyaz, M = mavi; her piksel 1 bayt) RLE ile nasıl kodlanır? Kaç bayt kazanılır?
Cevap
Koşular üç beyaz, yedi mavi ve iki beyazdır: (3, B) (7, M) (2, B). Üç çift × 2 bayt = 6 bayt; özgün satır 12 bayttır. 6 bayt kazanılır ve satır yarıya iner. Uzunlukların toplamı 3 + 7 + 2 = 12'dir.
Yedi veri biti 1101000, çift pariteyle gönderiliyor. Parite biti nedir? Alıcıya 11000001 ulaşırsa alıcı ne karar verir?
Cevap
1101000'de üç tane 1 vardır; toplamı çift yapmak için parite biti 1'dir ve gönderilen dizi 11010001'dir. Alınan 11000001'de üç tane 1 vardır; sayı tektir, alıcı hata olduğunu anlar ve veriyi yeniden ister. (Gerçekte 4. bit 1'den 0'a dönmüştür; alıcı bunun yerini bilemez.)
50 Mbps hızındaki bir bağlantıyla 1,5 GB'lık (1,5 × 109 bayt) bir dosya en iyi durumda kaç saniyede iner?
Cevap
Dosya bite çevrilir: 1,5 × 109 × 8 = 12 × 109 bit. Hız 50 × 106 bit/s'dir. Süre 12 × 109 ÷ (50 × 106) = 240 s = 4 dakika. Hız bayta çevrilerek de bulunur: 50 Mbps = 6,25 MB/s; 1.500 MB ÷ 6,25 = 240 s.
Kutusunda “500 GB” yazan bir disk işletim sisteminde yaklaşık kaç GiB görünür?
Cevap
Üretici ondalık birim kullanır: 500 × 109 bayt. İşletim sistemi bunu 230 = 1.073.741.824 bayta böler: ≈ 465,7 GiB. Bayt kaybı yoktur; fark birim tanımından gelir.
Bir seranın havalandırması (sıcaklık > 28) AND (nem < 60) koşuluyla açılıyor. Sıcaklık 30 °C, nem %70 iken koşulun değeri nedir? AND yerine OR yazılsaydı ne olurdu?
Cevap
30 > 28 doğrudur (1); 70 < 60 yanlıştır (0). 1 AND 0 = 0: havalandırma açılmaz. OR ile 1 OR 0 = 1 olur ve havalandırma açılır. Aynı veriyle bağlacın seçimi kararı değiştirir.
1.10İleri okuma
- J. G. Brookshear ve D. Brylow, Computer Science: An Overview (13. baskı, Pearson, 2019), Bölüm 1: bitlerin depolanması, ikili sistem, metin, görüntü ve sesin temsili, veri sıkıştırma ve iletim hataları bu nottakine çok yakın bir sırayla ve bol örnekle anlatılır.
- W. Stallings, Computer Organization and Architecture (11. baskı, Pearson, 2019), Bölüm 1–2: bilgisayarın temel yapısı, işlemcinin parçaları ve bilgisayarların tarihsel gelişimi daha ayrıntılı bir donanım bakışıyla verilir.
- C. Petzold, Code: The Hidden Language of Computer Hardware and Software (2. baskı, Microsoft Press, 2022): mors alfabesinden ve ampullerden başlayarak ikili sayıları, mantık kapılarını ve işlemciyi teknik bilgi gerektirmeden kurar.
1.11Kaynaklar
- J. G. Brookshear, D. Brylow, Computer Science: An Overview, Pearson.
- W. Stallings, Computer Organization and Architecture, Pearson.
- The Unicode Consortium, The Unicode Standard.
- NIST, Glossary of Key Information Security Terms (NISTIR 7298).
- IEC 80000-13, Quantities and units — Part 13: Information science and technology (ikili ön ekler: kibi, mebi, gibi).
- 6698 sayılı Kişisel Verilerin Korunması Kanunu, Resmî Gazete, 7 Nisan 2016.
İlgili sayfalar: Temel Kavramlar sunumu · Çalışma soruları · Sayı tabanı dönüştürücü · Terim sözlüğü · © Sercan Külcü. Tüm hakları saklıdır.