Kısım I · Makine · Bölüm 2

Bit ve Byte

Her şey sayıdır (Bits, bytes and representation)

Neden burada · Neye dayanıyor

Neden burada: Kat planının zemininde (Kat 0) elektrik var ve elektrik bir telden yalnızca iki şey söyleyebilir: akım var ya da yok. Bu bölüm, o kadar fakir bir alfabeyle nasıl sayı, harf, Türkçe karakter, emoji, renk, fotoğraf, ses ve video yazıldığını gösterir. Yukarıdaki bütün katlar, burada kurulan alfabeyle konuşur.

Neye dayanıyor: Bölüm 1: girdi–işlem–çıktı, kat planı ve özellikle soyutlama (1.4). Bu bölümde soyutlamanın ilk somut örneğini göreceksin: sıfırlar ve birler, bir kural sayesinde "harf" olur.

  1. Kat 2–10Devreler, işlemci, diller, işletim sistemi, web, uygulamaHepsi bu bölümde kurulan alfabeyi kullanır.
  2. Kat 1Transistör ve mantık kapılarıBitleri açıp kapayan anahtarlar. Bölüm 3.
  3. Kat 0Elektrik ve bitVar ya da yok, 1 ya da 0.

Bu bölümde dört şey kuracağız. Önce sayıları yalnızca 0 ve 1 ile yazmayı (ikilik sistem). Sonra bu rakamların birimlerini: bit, byte, kilobyte. Sonra en önemli fikri: sayılar bir kodlama kuralıyla harfe, renge, sese dönüşür. Son olarak da şu ince ama hayati noktayı: aynı bitler, hangi kuralla okunduklarına göre bambaşka anlamlara gelir.

2.1 Sayı sistemleri: birli, onluk, ikilik

CS50 bu konuya bir sınıfta yoklama almakla başlar.1 Parmaklarınla sayarsan her parmak bir kişidir: bir parmak bir, iki parmak iki. Her işaretin aynı değerde olduğu bu sisteme birli sistem (unary, base-1) denir. Mahkûmların duvara çizdiği çentikler de böyledir. Basittir ama verimsizdir: on parmakla en fazla ona kadar sayabilirsin.

Onluk sistem ve basamak değeri

Günlük hayatta kullandığımız onluk sistem (decimal, base-10) çok daha akıllıcadır, çünkü bir rakamın değeri yalnızca kendisine değil, bulunduğu yere de bağlıdır. Buna basamak değeri (place value) denir. 123 sayısında:

Yüzler (10²)Onlar (10¹)Birler (10⁰)
123

yani 1 × 100 + 2 × 10 + 3 × 1 = 123. Onluk sistemde on farklı rakam (0–9) vardır ve her basamak, sağındakinin on katı değerindedir. Bunu ilkokulda öğrendin; o kadar alıştın ki bir sistem olduğunu fark etmiyorsun. Bilgisayarı anlamanın ilk adımı, bu sistemin tek mümkün sistem olmadığını görmek.

İkilik sistem

Bilgisayarlar ikilik sistem (binary, base-2) kullanır.1 Mantık tamamen aynıdır, yalnızca iki farklı rakam (0 ve 1) vardır ve her basamak sağındakinin iki katı değerindedir. Basamak değerleri sağdan sola 1, 2, 4, 8, 16, 32, 64, 128… diye gider.

CS50'nin örneği üç ampuldür. Her ampul bir basamaktır; yanıyorsa 1, sönükse 0:1

4'ler (2²)2'ler (2¹)1'ler (2⁰)Onluk değer
0000
0011
0102
0113 (2 + 1)
1004
1015 (4 + 1)
1106 (4 + 2)
1117 (4 + 2 + 1)

İkilik bir sayıyı onluğa çevirmek için yapacağın tek şey: 1 olan basamakların değerlerini toplamak. Üç ampulle 0'dan 7'ye kadar sekiz farklı sayı yazılabilir. 8'i yazmak için dördüncü bir ampul (8'ler basamağı) gerekir: 1000.

Sık karışan nokta

İkilik 10 "on" değildir, "iki"dir (bir tane 2, sıfır tane 1). İkilik 100 ise "dört"tür. Rakamlar aynı görünür ama okuma kuralı farklıdır. Bu, bölümün sonunda (2.8) varacağımız büyük fikrin ilk küçük örneği: bir işaretin anlamı, onu okuduğun kurala bağlıdır.

Neden iki? Neden on değil?

Çünkü bilgisayarın temelindeki parça, bir sonraki bölümde göreceğin transistör, bir anahtardır: açık ya da kapalı. Bir telde akımın "var" ya da "yok" olduğunu ayırt etmek kolay ve güvenilirdir. On farklı gerilim seviyesini birbirinden şaşmadan ayırt etmek ise çok daha zor, pahalı ve hataya açık olurdu. CS50'nin deyişiyle: bilgisayarlar milyonlarca, milyarlarca transistörün açılıp kapanmasıdır; 1 açık, 0 kapalı demektir.1 İkilik sistem, bu fiziksel gerçeğin matematikteki karşılığıdır.

2.2 Bit: bilginin en küçük birimi

İkilik sistemdeki tek bir basamağa, yani tek bir 0 ya da 1'e bit denir. Kelime İngilizce binary digit (ikilik rakam) ifadesinden gelir.1 Bit, bilginin bölünemeyen en küçük birimidir: tek bir evet/hayır sorusunun cevabı. Kullanıcı bu soruyu doğru mu cevapladı? Ses açık mı? Karanlık mod etkin mi? Her biri bir bitle yazılabilir.

Bitlerin gücü bir araya geldiklerinde ortaya çıkar. Her yeni bit, mümkün durumların sayısını ikiye katlar:

Bu katlanma çok hızlı büyür. 10 bit 1.024 durum, 20 bit bir milyonu aşkın, 32 bit dört milyarı aşkın durum demektir. Bölüm 1'deki telefon rehberinde "ortadan böl" yönteminin 1.000 sayfayı yaklaşık 10 adımda bitirmesi tesadüf değil: aynı hesabın tersi. Her adım bir evet/hayır sorusuydu ("solda mı, sağda mı?"), yani bir bit; 10 bitlik soru, 1.024 sayfa arasından birini seçmeye yeter.

2.3 Byte ve büyük birimler

Bilgisayarlar bitleri genellikle tek tek değil, sekizli gruplar halinde işler. Sekiz bitlik gruba byte denir.1 Sekiz bitin basamak değerleri şunlardır:

128064032016080412011

Yukarıdaki byte 00000101, yani 4 + 1 = 5'tir. Bütün bitler 0 olursa 0, hepsi 1 olursa 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 olur.1 Demek ki bir byte 256 farklı değer (0'dan 255'e) taşıyabilir. Bu "255" sayısını aklında tut; az sonra renklerde karşına çıkacak.

Kilo, mega, giga: 1000 mi, 1024 mü?

Byte'lar da büyük sayılarla ölçülür: kilobyte (KB), megabyte (MB), gigabyte (GB), terabyte (TB). Burada küçük ama gerçek bir karışıklık var ve bilmen işine yarar.

Gündelik hayatta "kilo" 1.000 demektir (kilogram = 1.000 gram). Ama bilgisayarlar ikilik çalıştığı için, 1.000'e en yakın "yuvarlak" ikilik sayı 2¹⁰ = 1.024'tür ve tarihsel olarak 1 kilobyte = 1.024 byte kabul edilmiştir.2 Sonuç: aynı kelime iki farklı miktar için kullanıldı.

Bu yüzden "1 TB" diye satılan bir disk, ikilik ölçü kullanan bir bilgisayarda yaklaşık 931 "GB" görünür: hiçbir şey kaybolmadı, yalnızca iki farklı cetvel kullanıldı. Apple'ın açıklamasına göre macOS ve iOS da eskiden ikilik ölçüyle gösterirken, OS X Leopard ve iOS 10'dan sonraki sürümlerde onluk ölçüye geçmiştir.3

Bir de hızlarda bir tuzak: internet hızları genellikle bit cinsinden verilir (megabit/saniye, Mbps), dosya boyutları ise byte cinsinden. 100 Mbps'lik bir bağlantı saniyede en fazla yaklaşık 100 ÷ 8 = 12,5 megabyte taşır.2 Kısaltmada küçük b bit, büyük B byte demektir.

2.4 Onaltılık sistem: byte'ları okumanın kısa yolu

Uzun bit dizilerini okumak insan için yorucudur: 11111111 mi 11111110 mı, göz kolayca kaçırır. Programcılar bu yüzden çoğu zaman onaltılık sistem (hexadecimal, base-16) kullanır. Mantık yine aynı, yalnızca on altı farklı rakam var: 0–9'dan sonra A (10), B (11), C (12), D (13), E (14), F (15). Her basamak sağındakinin on altı katıdır.

Onaltılığın sihri şudur: 16 = 2⁴ olduğu için, tek bir onaltılık rakam tam olarak 4 biti, iki onaltılık rakam da tam olarak bir byte'ı gösterir. Yani çeviri, büyük bir hesap gerektirmez; bitleri dörderli gruplara ayırıp her grubu bir rakamla yazmak yeter:

İkilikOnaltılıkOnluk
0000 0000000
0000 10100A10
0100 10004872
1111 1111FF255

Programcılar bir sayının onaltılık olduğunu belirtmek için önüne genellikle 0x koyar: 0x48, onluk 72 demektir, "kırk sekiz" değil. Yine aynı ders: işareti okumadan önce kuralı bil.

Uygulamamızda

Prototipinin CSS dosyasında color: #FF0000; gibi bir satır gördüysen, o bir onaltılık sayıdır, daha doğrusu art arda üç byte'tır: FF kırmızı, 00 yeşil, 00 mavi. Yani "kırmızıyı sonuna kadar aç, diğer ikisini kapat." Bunun neden üç byte olduğunu 2.6'da göreceğiz.

2.5 Harfleri sayıya çevirmek: ASCII, Unicode, UTF-8

Buraya kadar bitlerle yalnızca sayı yazdık. Peki "Kerem" kelimesi bellekte nasıl durur? Cevap: bir anlaşmayla. Herkesin kabul ettiği bir tabloda her harfe bir sayı karşılık getirilir; harf saklanacağı zaman onun sayısı saklanır. Harfleri sayılara, sayıları bitlere çeviren bu kurallar bütününe kodlama (encoding) denir.

ASCII

İlk yaygın anlaşma 1960'larda Amerika'da ortaya çıkan ASCII'dir (American Standard Code for Information Interchange). ASCII 7 bit kullanır, yani 128 karakter tanımlar (0–127): İngiliz alfabesinin büyük ve küçük harfleri, rakamlar, noktalama işaretleri ve ekranda görünmeyen bazı kontrol karakterleri (satır sonu gibi).12 Birkaç örnek:

KarakterOnlukİkilikOnaltılık
A650100000141
a970110000161
0 (rakam olarak sıfır karakteri)480011000030
H720100100048
I730100100149
!330010000121

CS50'nin örneğinde telefonuna bir mesaj gelir ve altındaki bitler 72, 73, 33 sayılarını gösterir. ASCII tablosuna bakınca: HI!1 İki şeye dikkat et. Birincisi, "0" karakteri ile 0 sayısı farklı şeylerdir: ekranda gördüğün "0" işareti ASCII'de 48 sayısıyla saklanır. İkincisi, büyük ve küçük harfler ayrı karakterlerdir (A = 65, a = 97); bu yüzden bilgisayar "Kerem" ile "kerem"i varsayılan olarak farklı görür. Kullanıcı adı karşılaştırırken bunu unutan programlar hata verir.

ASCII'nin büyük eksiği belli: ş, ğ, ı, İ, ç, ö, ü yok. Arapça, Çince, Yunanca yok. 128 yer, dünyanın yazı sistemleri için çok azdır. Bir dönem her ülke kalan boşlukları kendine göre doldurdu (Türkçe için ayrı, Yunanca için ayrı tablolar); aynı sayı bir tabloda ş, diğerinde başka bir harf demekti ve dosyalar ülkeler arasında bozuluyordu.

Unicode

Çözüm Unicode oldu: dünyadaki bütün yazı sistemlerinin bütün karakterlerine, tek bir ortak listede, tek bir numara verme girişimi.4 Unicode'da bir karakterin numarasına kod noktası (code point) denir ve U+ önekiyle, onaltılık yazılır:

KarakterKod noktasıAçıklama
AU+0041ASCII'deki 65 ile aynı (0x41 = 65)
şU+015FLatin küçük s, çengelli
ıU+0131Noktasız küçük i
İU+0130Noktalı büyük I
€U+20ACEuro işareti
😀U+1F600Gülen yüz emojisi

Unicode 18.0 sürümü itibarıyla 172.808 karakter tanımlıdır ve her sürümle yenileri eklenir; emojiler de bu listenin parçasıdır.5 CS50'nin belirttiği ince bir nokta: Unicode bir emojinin numarasını standartlaştırır, çizimini değil. Bu yüzden aynı 😀 bir iPhone'da ve bir Android'de biraz farklı görünür: numara aynı, çizim her üreticinin kendi yazı tipine kalmış.1 Soyutlama yine karşımızda: kod noktası arayüz, çizim gerçekleme.

UTF-8: kod noktalarını byte'a dökmek

Unicode her karaktere bir numara verir, ama o numaranın bellekte hangi byte'larla yazılacağını ayrı bir kural belirler. Bugün web'in ve neredeyse bütün modern sistemlerin kullandığı kural UTF-8'dir. UTF-8'in iki akıllıca özelliği vardır:6

  1. Değişken uzunluk: Her karakter 1 ile 4 byte arasında yer kaplar. Sık kullanılan karakterler az, nadir olanlar çok yer tutar.
  2. ASCII uyumu: İlk 128 karakter, ASCII ile birebir aynıdır ve tek byte tutar. Yani eski ASCII metinler, hiç değiştirilmeden geçerli UTF-8 metinlerdir.
KarakterUTF-8 byte'ları (onaltılık)Byte sayısı
A411
şC5 9F2
ıC4 B12
€E2 82 AC3
😀F0 9F 98 804

Pratik bir sonuç: Türkçe bir metin, aynı uzunluktaki İngilizce metinden biraz daha fazla byte tutar, çünkü ş, ğ, ı, İ, ç, ö, ü ikişer byte'tır. "Karakter sayısı" ile "byte sayısı" bu yüzden farklı şeylerdir; bir veritabanı alanının sınırını belirlerken ya da bir mesajın boyutunu hesaplarken bu fark önem kazanır.

Kural yanlış olunca: bozuk karakterler

Bir program UTF-8 ile yazılmış bir metni başka bir kodlamayla okursa ne olur? Byte'lar aynıdır ama okuma kuralı yanlıştır. Örneğin ş harfinin iki byte'ı (C5 9F), eski Batı Avrupa kodlamalarından biriyle (Windows-1252) okunursa iki ayrı karakter gibi görünür: ÅŸ. "Kerem şık" metni ekranda "Kerem şık" olarak belirir. Türkçe bir sitede bu tür garip karakterler gördüysen, sebebi budur: bitler sağlam, kural yanlış.

Uygulamamızda

Prototipindeki index.html dosyasının <head> kısmında muhtemelen şu satır var:

<meta charset="utf-8">

Artık ne dediğini okuyabilirsin: "Tarayıcı, bu dosyadaki byte'ları UTF-8 kuralıyla harfe çevir." Bu satır olmasa ya da dosya başka bir kodlamayla kaydedilmiş olsa, "Hukuka Giriş" başlığındaki ş ve İ bozulabilirdi. Hukuk uygulaması Türkçe olduğu için bu satır bizim için süs değil, zorunluluk.

2.6 Renk ve görüntü: RGB ve piksel

Bitlerle renk nasıl yazılır? Yine bir anlaşmayla. Ekranındaki her nokta, kırmızı, yeşil ve mavi ışığın karışımıyla oluşur. Her rengin ne kadar yanacağını bir sayıyla söylersen, bir rengi üç sayıyla tarif etmiş olursun. Bu modele RGB (Red, Green, Blue) denir. Her bileşen genellikle bir byte'tır, yani 0 (hiç) ile 255 (tam) arasında bir değer alır.1

Her bileşen 256 değer alabildiğine göre, üç byte ile 256 × 256 × 256 = 16.777.216 farklı renk yazılabilir. CSS'te bir rengi rgb(…) ile ya da # ile başlayan altı onaltılık rakamla yazmak, aynı üç byte'ı iki farklı biçimde yazmaktır.

Bir dijital görüntü, bu renkli noktaların bir ızgarasıdır. Her noktaya piksel (pixel, picture element) denir; ızgaranın genişlik ve yüksekliğine çözünürlük (resolution).1 1920 × 1080 çözünürlüklü bir ekranda 2.073.600 piksel vardır. Her piksel 3 byte ise, tek bir ekran görüntüsü ham haliyle yaklaşık 6,2 milyon byte (yaklaşık 6 MB) eder.

2.7 Ses ve video: örnekleme ve sıkıştırma

CS50 videoyu bir çocuk kitabının köşesindeki çevir-oynat resimlere (flipbook) benzetir: art arda gösterilen bir dizi görüntü.1 Her görüntüye kare (frame) denir. Saniyede 30 kare gösterilen bir video, 1920 × 1080 çözünürlükte, ham haliyle saniyede 6,2 MB × 30 ≈ 187 MB tutardı. Bir saatlik film yüzlerce gigabyte olurdu.

Ses de sayılara benzer bir yolla çevrilir. Ses, havadaki basıncın sürekli dalgalanmasıdır. Mikrofon bu dalgalanmayı ölçer; bilgisayar da bu ölçümü çok kısa aralıklarla bir sayı olarak kaydeder. Bu işleme örnekleme (sampling) denir. Müzik CD'si standardı saniyede 44.100 örnek alır ve her örneği 16 bitle kaydeder, iki kanal (stereo) için.7 Hesap: 44.100 × 2 byte × 2 kanal = saniyede 176.400 byte, dakikada yaklaşık 10,6 MB.

Bu rakamlar bize günlük hayatta neden bu kadar büyük dosyalarla karşılaşmadığımızı sorduruyor. Cevap sıkıştırma (compression): veriyi daha az bitle yazmanın yolları. Kabaca iki türü var:

Sıkıştırmanın ayrıntıları bu kitabın konusu değil. Bilmen gereken: ses, görüntü ve video da sonunda byte'tır ve boyutları yazılımın hızını, maliyetini ve tasarımını doğrudan etkiler.

2.8 Anlam bağlamdadır

Bölümün en önemli fikrine geldik. CS50'nin örneğini birleştirelim: 72, 73, 33 sayıları ASCII ile okunursa HI! olur. Aynı üç sayı RGB olarak okunursa, yani 72 kırmızı, 73 yeşil, 33 mavi diye, koyu, zeytine çalan bir sarı tonunda tek bir piksel olur.1 Bellekteki bitler birebir aynı:

01001000  01001001  00100001

Bu bitler kendi başlarına "harf" ya da "renk" değildir. Hiçbir şey değildir. Anlamı, onları okuyan programın hangi kuralı uyguladığı belirler. Bitlerin kendisinde "ben bir harfim" yazmaz.

Hukuk okumuş biri için bu tanıdık bir fikir olmalı: aynı kelime, farklı bir kanunun bağlamında farklı bir anlama gelebilir; metni okumadan önce hangi kuralın uygulanacağını bilmek gerekir. Bilgisayarda da her veri, yanında ya açıkça ya da örtük bir "nasıl okunacağı" bilgisiyle yaşar. Bu bilginin üç yaygın biçimi:

Bölüm 1 ile bağlantı

Bu bölüm baştan sona bir soyutlama hikâyesiydi. Altta (Kat 0) yalnızca bitler var. Üstünde bir kural katmanı (ikilik sayı, ASCII, Unicode, UTF-8, RGB) bu bitlere anlam giydiriyor. Senin HTML yazarken "harf" diye düşünmen, piksellere bakarken "renk" görmen, bu kuralların arayüz olarak çalışıp bitleri gizlemesi sayesinde. Kural ile bitler uyuşmadığında (bozuk Türkçe karakterler) soyutlama "sızar" ve alttaki kat görünür hale gelir. Hata ayıklarken en değerli soru şudur: "Bu veri hangi kuralla yazıldı, ben hangi kuralla okuyorum?"

Bu bölümde neler kuruldu

Bilgisayar, transistörlerin açık ya da kapalı olmasına dayandığı için ikilik sistemle çalışır: 1 ve 0, basamak değerleri 1, 2, 4, 8… Tek bir basamak bir bit, sekiz bit bir bytetır ve bir byte 0–255 arası 256 değer taşır; her eklenen bit olasılıkları ikiye katlar. Byte'ları okumak için onaltılık yazım kullanılır (iki rakam = bir byte). Harfler kodlama kurallarıyla sayıya çevrilir: ASCII 128 karakterle başladı, Unicode her karaktere bir kod noktası verdi, UTF-8 bu numaraları 1–4 byte ile yazar. Renkler RGB'de üç byte, görüntüler piksel ızgarası, video kareler dizisi, ses örneklemelerdir; boyutları sıkıştırmayla küçültülür. Ve en önemlisi: bitlerin anlamı, onları okuyan kuraldadır.

Terimler sözlükte, Bölüm 2 başlığı altında.

Birincil okuma

CS50x 2026, Lecture 0 ders notları, şu başlıklar: Computer Science and Problem Solving (ikilik sayma), ASCII, Unicode, RGB. Kısa ve tablolu. Derinleşmek istersen: Computer Science from the Bottom Up, Bölüm 2 (Binary and Number Representation); ve UTF-8 için MDN'in kısa tanımı.

Takıldığın her yeri yapay zekâ öğretmenine sor. Bir öneri: ondan sana birkaç ikilik sayı versin, sen onluğa çevir; sonra tersini yap. İki üç tur, bu bölümün en mekanik kısmını kalıcı hale getirir.

Bölüm sonu soruları

Kitaba bakmadan cevapla. Kâğıt kalem serbest.

1. İkilik 1010 sayısı onlukta kaçtır?
Basamak değerleri sağdan sola 1, 2, 4, 8. 1 olan basamaklar 8 ve 2: 8 + 2 = 10. Bkz. 2.1.
2. Bilgisayarlar neden onluk değil ikilik sistemle çalışır?
Temel parça olan transistör bir anahtardır; akımın var/yok olduğunu ayırt etmek kolay ve güvenilirdir. İkilik sistem bu fiziksel gerçeğin karşılığıdır. Bkz. 2.1.
3. Bir byte kaç farklı değer taşıyabilir?
8 bit, 2⁸ = 256 farklı durum demektir: 0'dan (hepsi 0) 255'e (hepsi 1). Bkz. 2.3.
4. "1 TB" diye satılan disk bilgisayarda yaklaşık 931 GB görünüyor. Neden?
Aynı byte sayısı iki farklı cetvelle ölçülüyor: üretici 1 GB = 10⁹ byte, ikilik ölçü kullanan sistem 1 GB = 2³⁰ byte sayar. Bkz. 2.3.
5. CSS'teki #00FF00 hangi rengi gösterir?
Üç byte sırasıyla kırmızı, yeşil, mavi: 00 kırmızı kapalı, FF (255) yeşil tam, 00 mavi kapalı. Bkz. 2.4 ve 2.6.
6. Unicode ile UTF-8 arasındaki ilişki nedir?
Unicode her karaktere bir kod noktası (ör. ş = U+015F) verir; UTF-8 bu numaranın bellekte hangi byte'larla (C5 9F) yazılacağının kuralıdır. Bkz. 2.5.
7. Bir sitede "ÅŸ" gibi garip karakterler görüyorsun. En olası sebep hangisi?
Bitler sağlam, okuma kuralı yanlış: UTF-8 ile yazılmış ş (C5 9F) eski bir kodlamayla iki ayrı karakter gibi okunuyor. Bkz. 2.5.
8. JavaScript'te "5" + 1 neden "51" verir?
Veri tipi, değerin nasıl yorumlanacağını belirler. "5" bir metindir; metne bir şey eklemek birleştirmedir. Anlam, uygulanan kuraldadır. Bkz. 2.8.
9. Kendi cümlelerinle: 01001000 01001001 00100001 bitleri neden hem "HI!" hem de bir renk olabilir? "Anlam bağlamdadır" ilkesini bir hukuk örneğiyle açıkla.
Örnek cevabı göster

Bitlerin kendi başına bir anlamı yoktur; 72, 73, 33 sayılarını ASCII kuralıyla okursan harf (H, I, !), RGB kuralıyla okursan bir pikselin kırmızı, yeşil, mavi değerleri olur. Anlamı, veriyi okuyan programın uyguladığı kural belirler. Hukukta da aynı terim farklı bir kanunun bağlamında farklı anlam taşıyabilir; metni yorumlamadan önce hangi kuralın uygulanacağını bilmek gerekir.

10. "Kerem" kelimesi UTF-8 ile kaç byte tutar? Peki "Kerem şık"? Hesabını göster. (İpucu: boşluk da bir karakterdir.)
Cevabı göster

"Kerem": 5 harf, hepsi ASCII, her biri 1 byte = 5 byte. "Kerem şık": K, e, r, e, m (5) + boşluk (1) + ş (2) + ı (2) + k (1) = 11 byte. 9 karakter, 11 byte: karakter sayısı ile byte sayısı farklıdır.

Kaynaklar

  1. CS50x 2026, Lecture 0 ders notları. Kaynak: CS50 Hafta 0 notları; birli/ikilik sayma, ampul örneği, byte, ASCII ve "HI!", Unicode ve emoji, RGB, görüntü ve video.
  2. Ian Wienand, Computer Science from the Bottom Up, Bölüm 2: n bit ile 2ⁿ durum, byte, ASCII'nin 7 bitliği, kilobyte'ın 1024 olarak yerleşmesi, bit ve byte cinsinden hızlar.
  3. Apple Support, How iOS and macOS report storage capacity: onluk ve ikilik ölçü, 1 GB = 1.073.741.824 byte (ikilik), eski sürümlerin ikilik ölçü kullanması.
  4. Unicode Consortium, What is Unicode?; MDN, Glossary: Unicode.
  5. Unicode Consortium, Unicode 18.0.0: toplam 172.808 karakter.
  6. MDN, Glossary: UTF-8: ilk 128 karakterin ASCII ile aynı olması, diğerlerinin 2–4 byte tutması.
  7. Wikipedia, Compact Disc Digital Audio: Red Book standardı, 44.100 Hz örnekleme, 16 bit, stereo.