- Kod tablosunun ne olduğunu açıklamak, ASCII kodlarıyla sözcükleri kodlamak ve kodlarını çözmek
- ASCII (1 bayt) ve UNICODE (2 bayt) kurallarıyla metnin boyutunu boşlukları ve noktalama işaretlerini de sayarak hesaplamak
- Belgenin boyutundan alfabenin gücünü, iletim verilerinden de sayfa sayısını bulmak
Klavyede “Salam” yazdığında bilgisayar harfleri değil, sayıları saklar: 83, 97, 108, 97, 109. Ekranda yeniden harfler görünür, çünkü bir program her sayıya karşılık gelen işareti çizer. Bazen ise bir arkadaşının gönderdiği metinde Azerbaycan harfi ə yerine “É™” gibi garip işaretler çıkar. Bu derste bilgisayarın metni nasıl kodladığını ve böyle hataların nereden geldiğini öğreneceğiz.
“Bilginin ölçülmesi: bit, bayt ve birimler” dersinde I = K · i formülünü öğrendik; şimdi onu gerçek metinlere uygulayacağız. Konu giriş sınavında sık çıkar: 2025–2026’daki dört giriş sınavında beş soru metnin kodlanmasıyla ilgiliydi (ASCII ve UNICODE hacimleri, alfabenin gücü, 64 karakterli alfabede sözcükler, UNICODE metnin bir kanaldan iletilmesi); bir metin işleme sorusunda ise sözcükler UNICODE hacmine göre seçiliyordu.
Kod tablosu: her karaktere bir sayı
Bilginin belirli bir kurala göre bir işaret sisteminden başka birine dönüştürülmesi. Bir metni kodlamak, her karakteri ikili koda çevirmek demektir; ters işleme kod çözme denir.
Her karaktere (harf, rakam, noktalama işareti, boşluk, özel işaret) bir sayı — kodunu — veren tablo. Metni yazan ve okuyan programlar aynı tabloyu kullanmalıdır.
ASCII: bir karakter, bir bayt
ASCII (Bilgi Değişimi için Amerikan Standart Kodu) 1963’te oluşturuldu. İçinde 128 kod vardır (0–127): 0–31 denetim karakterleridir (örneğin yeni satıra geçiş), 32 boşluk, 48–57 rakamlar, 65–90 büyük, 97–122 ise küçük Latin harfleridir. Bilgisayarda her ASCII karakteri 1 bayt (8 bit) yer kaplar. 128–255 kodları ulusal harfler için kullanıldı: Kiril harfleri için Windows-1251 ve KOI8-R, Türkçe için Windows-1254 tabloları yapıldı.
| Karakter | Onluk kod | İkili kod (1 bayt) |
|---|---|---|
| boşluk | 32 | 00100000 |
| 0 | 48 | 00110000 |
| 9 | 57 | 00111001 |
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| Z | 90 | 01011010 |
| a | 97 | 01100001 |
| z | 122 | 01111010 |
1) ASCII kodları 73 78 70 79 olan sözcüğü bulun.
2) “A” harfinin kodu 65’tir. “K” harfinin kodu kaçtır?
3) 01000010 01001001 01010100 ikili kodları hangi sözcüğü gösterir?
4) “d” harfinin kodu 100’dür. “D” ve “h” harflerinin kodlarını bulun.
Çözümü gösterÇözümü gizle
2) K, İngiliz alfabesinin 11. harfidir: 65 + 10 = 75.
3) 01000010 = 64 + 2 = 66 ⇒ B; 01001001 = 64 + 8 + 1 = 73 ⇒ I; 01010100 = 64 + 16 + 4 = 84 ⇒ T. Sözcük: BIT.
4) “D” = 100 − 32 = 68; “h”, “d”den 4 harf sonra gelir: 100 + 4 = 104.
word = "INFO"
print([ord(c) for c in word])
print(chr(66) + chr(73) + chr(84))
print(ord("a") - ord("A"), ord("ə"))▸ Beklenen çıktı
[73, 78, 70, 79] BIT 32 601
ord() bir karakterin kodunu, chr() ise bir koda karşılık gelen karakteri verir. ə harfinin kodu 601’dir: bu harf ASCII’de yoktur, yalnızca UNICODE’da vardır.UNICODE: bütün diller tek tabloda
Farklı ülkelerin 8 bitlik tabloları birbirini tutmuyordu: aynı kod bir tabloda bir harf, başka bir tabloda başka bir harf demekti. Bu yüzden 1991’de UNICODE standardı oluşturuldu. Bu standartta dünyadaki bütün yazıların harflerine, matematik işaretlerine ve hatta emojilere ayrı bir numara verilir — bugün 150.000’den fazla karakter. İlk 128 kod ASCII ile aynıdır: “A” yine 65’tir, ə harfinin numarası ise U+0259, yani 601’dir.
Okul sorularında ve DİM sınavlarında “UNICODE” karakter başına 16 bit (2 bayt) demektir: 2¹⁶ = 65.536 farklı karakter. Bu, UTF-16 kodlamasının temel durumuna uyar. Gerçek dosyalarda ve internette ise çoğunlukla UTF-8 kullanılır: burada bir karakter 1 ile 4 bayt arasında yer kaplar — Latin harfleri 1, Azerbaycan Türkçesinin özel harfleri (ə, ş, ç, ğ, ı, ö, ü) ve Kiril harfleri 2, € işareti ve Çince karakterlerin çoğu 3, emojiler ise 4 bayt.
| Kodlama | Bir karakter | Karakter sayısı |
|---|---|---|
| ASCII | 8 bit = 1 bayt | 2⁸ = 256 (standart ASCII — 128) |
| UNICODE (okul sorularında) | 16 bit = 2 bayt | 2¹⁶ = 65.536 |
| UTF-8 | 1–4 bayt | bütün UNICODE karakterleri |
- Imetnin bilgi hacmi
- Kmetindeki bütün karakterlerin sayısı: harfler, rakamlar, boşluklar, noktalama işaretleri
Bu, I = K · i formülünün özel bir durumudur: ASCII’de i = 8, UNICODE’da i = 16. Aynı metin UNICODE’da ASCII’dekinin 2 katı yer kaplar.
- 1Harfleri say
Her sözcüğün harflerini ayrı ayrı say ve topla.
- 2Boşlukları ekle
Sözcükler arasında birer boşluk varsa boşluk sayısı = sözcük sayısı − 1.
- 3Noktalama işaretlerini unutma
Nokta, virgül, soru ve ünlem işaretleri, tırnaklar, tire ve rakamlar da karakterdir.
- 4Çarp ve çevir
K’yi 8 (ASCII) ya da 16 (UNICODE) bitle çarp, sonra istenen birime geç.
Kodlama sistemleriyle
Small steps lead to big results.
cümlesinin bilgi hacmini eşleştirin (sözcükler arasında birer boşluk var).
1. UNICODE
2. ASCII
a. 32 bayt
b. 2⁹ bit
c. 64 bit
d. 2⁸ bit
e. 64 bayt
Çözümü gösterÇözümü gizle
1. UNICODE: 32 · 2 = 64 bayt = 512 bit = 2⁹ bit ⇒ b, e.
2. ASCII: 32 · 1 = 32 bayt = 256 bit = 2⁸ bit ⇒ a, d.
“64 bit” (c) hiçbirine uymaz: 64 baytı 64 bitle karıştıranların cevabıdır.
Cevap: 1 – b, e; 2 – a, d.
Bir kelime işlemcide “Small steps lead to big results.” cümlesi yazılmış ve karakterler UNICODE’da kodlanmış. Aysel bilgi hacmi 80 bit olan bütün sözcükleri kalın, 64 bit olan sözcüğü ise italik yaptı. Hangi sözcükler kalın, hangisi italik oldu? (Nokta sözcüğe dahil değildir.)
Çözümü gösterÇözümü gizle
80 bit : 16 = 5 harf ⇒ Small ve steps kalın olur.
64 bit : 16 = 4 harf ⇒ lead italik olur.
Diğer sözcükler (to — 32 bit, big — 48 bit, results — 112 bit) değişmez.
32 karakterli bir alfabede kodlanmış sözcükleri bilgi hacimleriyle eşleştirin.
1. data
2. python
3. internet
a. 5 bayt
b. 30 bit
c. 20 bit
d. 2,5 bayt
e. 40 bit
Çözümü gösterÇözümü gizle
1. data: 4 · 5 = 20 bit = 2,5 bayt ⇒ c, d.
2. python: 6 · 5 = 30 bit ⇒ b.
3. internet: 8 · 5 = 40 bit = 5 bayt ⇒ a, e.
Cevap: 1 – c, d; 2 – b; 3 – a, e.
s = "Small steps lead to big results."
print(len(s)) # spaces and the dot included
print(len(s) * 8, len(s) * 16) # bits in ASCII and in UNICODE
for w in ["Salam", "Gəncə", "Баку", "€"]:
print(w, len(w.encode("utf-8"))) # real size in UTF-8, bytes▸ Beklenen çıktı
32 256 512 Salam 5 Gəncə 7 Баку 8 € 3
len(), boşluklar ve nokta dahil karakterleri sayar. Son satırlar UTF-8’deki gerçek boyutu gösterir: Gəncə sözcüğü 7 bayttır, çünkü içindeki iki ə harfinin her biri 2 bayt yer kaplar.Belgeler, alfabenin gücü ve iletim
Birkaç sayfalık bir belgede karakter sayısı K = sayfa · satır · satırdaki karakter sayısıdır. Sınav sorularında sayılar genellikle ikinin kuvvetleridir (32 satır, 64 karakter), bu yüzden üslerle hesaplamak kolaydır. Tersine, hacim biliniyorsa karakter başına bit sayısı ve alfabenin gücü bulunabilir.
1) 16 sayfalık bir metnin her sayfasında 40 satır, her satırda 64 karakter var; metin UNICODE’da kodlanmış. Kaç KB’tır?
2) Bir metin UNICODE’dan ASCII’ye çevrildi ve hacmi 480 bayt azaldı. Metinde kaç karakter vardır?
Çözümü gösterÇözümü gizle
Kısa yol: 16 · 64 = 2¹⁰, yani I = 40 · 2¹⁰ · 2 bayt = 80 KB.
2) Her karakter 2 bayttan 1 bayta indi, yani 1 bayt azaldı: 480 bayt : 1 bayt = 480 karakter.
- ikarakter başına bit sayısı
- Imetin kısmının hacmi (bit); resimlerin hacmi önce çıkarılır
- Kkarakter sayısı
- Nalfabenin gücü
Ters soruların anahtarı: önce metnin hacmini ayır, sonra karakter sayısına böl.
20 sayfalık bir belgenin ilk 4 sayfasının her birinde yalnızca 16 KB’lık bir resim, diğer sayfaların her birinde ise 32 satırlık ve her satırı 64 karakterden oluşan bir metin var. Belgenin bilgi hacmi 88 KB’tır. Metnin yazıldığı alfabenin gücünü bulun.
A) 32 B) 64 C) 6 D) 128 E) 256
Çözümü gösterÇözümü gizle
Metin sayfaları: 20 − 4 = 16 = 2⁴; K = 2⁴ · 2⁵ · 2⁶ = 2¹⁵ karakter.
i = 24 · 2¹³ : 2¹⁵ = 24 : 4 = 6 bit ⇒ N = 2⁶ = 64 (B).
C seçeneği i’nin kendisidir: soru i’yi değil, N’yi soruyor.
Bir metin iletişim kanalından gönderilirken “Bilginin ölçülmesi: bit, bayt ve birimler” dersindeki I = v · t formülü geçerlidir: metnin bit cinsinden hacmi = hız · süre.
1) Her sayfasında 60 karakter bulunan bir UNICODE metni, iletim hızı 48 bit/s olan bir kanaldan 5 dakikada iletiliyor. Metin kaç sayfadır?
2) 2 sayfalık bir ASCII metninin her sayfasında 30 satır, her satırda 64 karakter var. Metin 256 bit/s hızla kaç dakikada iletilir?
Çözümü gösterÇözümü gizle
Bir sayfa: 60 · 16 = 960 bit ⇒ 14.400 : 960 = 15 sayfa.
2) I = 2 · 30 · 64 · 8 = 30.720 bit; t = 30.720 : 256 = 120 s = 2 dakika.
s değişkeninde bir cümle var. Cümlenin UNICODE’daki (karakter başına 16 bit) bilgi hacmini bit olarak yazdırın.
s = "Bakı is the capital of Azerbaijan."
# print the UNICODE volume in bits▸ Beklenen çıktı
544
Bir sonraki derste, “Bilgisayar grafiği: raster ve vektör görüntülerin kodlanması”, resimlerin nasıl kodlandığını öğreneceğiz; orada da N = 2ⁱ formülü temel rol oynar.
Önemli noktalar
- Bir metin kodlanırken her karakter kod tablosundaki sayısıyla değiştirilir; ASCII’de “A” = 65, “a” = 97, boşluk = 32.
- Bir karakter ASCII’de 1 bayt (8 bit), okul sorularında UNICODE’da ise 2 bayt (16 bit) yer kaplar.
- Bir metnin boyutu hesaplanırken boşluklar, noktalama işaretleri ve rakamlar da sayılır.
- N karakterli bir alfabede bir karakter i bittir (N = 2ⁱ): 64 karakter — 6 bit, 32 karakter — 5 bit.
- Ters sorularda önce resimlerin hacmini çıkar, sonra i = I / K’yi bul ve N = 2ⁱ’yi hesapla.
- Gerçek dosyalarda UTF-8 kullanılır: Latin harfi 1 bayt,
əve Kiril harfleri 2 bayt, emojiler 4 bayt.
Kendini test et
12 soru. Her doğru cevap XP kazandırır.