Bölüm 1.3: Bilgisayarlar

Bilgisayarlar · Çalışma Soruları
Tabanlar ve dönüşümlerİkiye tümleyen ve taşmaKayan noktalı sayılarASCII, Unicode, UTF-8Mantık ve ikili toplamaGetir–çöz–yürütKomutlar ve assembly
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Çoktan Seçmeli · Veri Temsili

Soru 1: Büyük Harften Küçüğe

Sunumdaki programda büyük harfin koduna 32 (00100000) eklenerek küçük harf elde ediliyordu (“A” 65 → “a” 97). “G” harfinin kodu 71’dir. Program hangi kodu üretir ve ekranda ne görünür?

B: 71 + 32 = 103 = “g”. Bit düzeyinde 01000111 + 00100000 = 01100111: büyük ve küçük harf yalnızca 32’ler basamağındaki bitte ayrılır. Aynı bit dizisinin harf olduğunu kodlama (ASCII) söyler.

Adım Adım Çalıştırma · Taban Dönüşümü

Soru 2: 214’ü Sekizli ve Onaltılığa

11010110₂ (= 214) sayısı bitler gruplanarak sekizli ve onaltılık tabana çevriliyor. Her adımda gruplar ve basamaklar ne olur?

8 = 2³ olduğu için bitler 3’erli, 16 = 2⁴ olduğu için 4’erli gruplanır.

Gruplama sağdan başlar; en soldaki eksik grup 0 ile tamamlanır: 11 → 011.

011 = 3, 010 = 2, 110 = 6 → 326₈.

Sekizlide basamak değerleri 64, 8, 1’dir. 214 ✓

Şimdi 4’erli gruplar: 1101 ve 0110.

1101 = 13 = D, 0110 = 6 → D6₁₆.

Kontrol ✓. Sekizli ve onaltılık, uzun ikili sayıları kısa yazmanın yoludur.

ikili ← 11010110          ; 214
; sekizli: sağdan 3'erli grupla
gruplar ← 011 | 010 | 110
sekizli ← ?
kontrol ← ?
; onaltılık: sağdan 4'erli grupla
gruplar ← 1101 | 0110
onaltılık ← ?
kontrol ← ?

Çıktı Sorusu · Taban Dönüşümü

Soru 3: Onaltılıktan İkiliye

Her onaltılık basamak 4 bittir. Aşağıdaki sayıları ikili ve onluk sisteme çevirin:
a) A7₁₆   b) 2C₁₆   c) 3F₁₆

Cevabı göster

a) 10100111₂ = 167   b) 00101100₂ = 44   c) 00111111₂ = 63

A₁₆ = 1010107₁₆ = 701111010 0111₂ = 128 + 32 + 4 + 2 + 1 = 167
  • Onluk değer: a) 10 · 16 + 7 = 167 · b) 2 · 16 + 12 = 44 · c) 3 · 16 + 15 = 63.
  • A–F harfleri 10–15 değerleridir.

Adım Adım Çalıştırma · Negatif Sayılar

Soru 4: İkiye Tümleyen: −13

8 bit ikiye tümleyen gösterimde −13 nasıl yazılır? Algoritmayı izleyin ve sonucu +13 ile toplayarak kontrol edin.

İki adım yeterli: bitleri ters çevir, sonra 1 ekle.

+13 = 8 + 4 + 1 → 00001101.

Tüm bitler ters çevrilir (0 ↔ 1). Buna birler tümleyeni denir.

11110010 + 1 = 11110011. En soldaki 1 sayının negatif olduğunu gösterir.

Toplam 9 bit çıkar; 9. bit (elde) 8 bitlik yazmaca sığmaz ve atılır.

+1300001101ters11110010−131111001100001101 + 11110011 = 1|00000000 → 0

Kalan 00000000 = 0 ✓: 13 + (−13) = 0. Toplama devresi negatifler için ayrıca bir şey yapmaz.

n ← 13
artı ← ikili8(n)
ters ← tüm bitleri çevir(artı)
eksi ← ters + 1
kontrol ← artı + eksi
yaz(eksi, kontrolün son 8 biti)

Çoktan Seçmeli · Taşma

Soru 5: byte Taşması

Aşağıdaki kod parçasının çıktısı hangi şıkta doğru verilmiştir?

byte x = 127;
x++;
x++;
System.out.print(x);
126127−128−127x++ taşar01111111 + 1 = 10000000

A: Java’da byte 8 bit ikiye tümleyen sayıdır (−128 … 127). 127 + 1 = 01111111 + 1 = 10000000 = −128 (taşma); bir artış daha −127 verir. −128 yalnızca ilk artıştan sonraki değerdir; 129 8 bite sığmaz.

Çoktan Seçmeli · Taşma

Soru 6: İşaretsiz 8 Bitte 180 + 100

8 bitlik işaretsiz bir yazmaçta 180 + 100 işlemi yapılıyor. Yazmaçta hangi değer kalır?

D: 280, 8 bite sığmaz (en fazla 255). 280 = 100011000₂; 9. bit (256) atılır, kalan 00011000 = 24. Kısaca 280 − 256 = 24 (taşma). Yazmaç 255’te “takılıp kalmaz”.

Çıktı Sorusu · Kayan Noktalı Sayılar

Soru 7: 0.1 + 0.2

Aşağıdaki kodun çıktısı nedir?

System.out.println(0.1 + 0.2);
System.out.println(0.1 + 0.2 == 0.3);
System.out.println(
    Math.abs(0.1 + 0.2 - 0.3) < 1e-9);
Cevabı göster

Çıktı:

0.30000000000000004
false
true
  • 0,1 ve 0,2 ikili sistemde sonlu bitle tam yazılamaz; double’da yuvarlanmış hâlleri saklanır.
  • Toplam 0,3’e çok yakın ama eşit değildir → == false.
  • Ondalıklı sonuçlar küçük bir tolerans ile karşılaştırılır → true.

Adım Adım Çalıştırma · Kayan Noktalı Sayılar

Soru 8: 0,3 Neden Tam Saklanamaz?

Ondalık kesir, sürekli 2 ile çarpılıp tam kısım alınarak ikiliye çevrilir. 0,3 için algoritmayı izleyin. Açılım biter mi?

Her turda kesir 2 ile çarpılır; tam kısım (0 ya da 1) bir sonraki bittir.

0,3 × 2 = 0,6 → tam kısım 0.

0,6 × 2 = 1,2 → bit 1, kesirden 1 çıkarılır: 0,2.

0,2 × 2 = 0,4 → bit 0.

0,4 × 2 = 0,8 → bit 0.

0,8 × 2 = 1,6 → bit 1, kesir 0,6.

0,3₁₀ = 0,0100110011001…“1001” sonsuza dek tekrarlar → sonlu bitte kesilir

0,6 ilk turda da görülmüştü: açılım döngüye girdi, hiç bitmez. Sonlu bitle kesilince küçük bir yuvarlama hatası oluşur.

kesir ← 0,3
bitler ← “0,”
tekrarla:
    kesir ← kesir × 2
    bit ← tam kısım(kesir)
    bitler ← bitler + bit
    kesir ← kesir − bit
kesir daha önce görüldüyse dur

Çoktan Seçmeli · Kayan Noktalı Sayılar

Soru 9: float’ın Bitleri

IEEE 754 standardındaki 32 bitlik float sayısının bit alanları hangisidir?

C: float = 1 + 8 + 23 = 32 bit. A, 64 bitlik double’ın alanlarıdır (1 + 11 + 52). Değer = (−1)^işaret × 1,kesir × 2^(üs − 127); normal sayılarda baştaki 1 saklanmaz.

Çıktı Sorusu · Metin Temsili

Soru 10: Karakter Kodlarıyla Hesap

ASCII’de “0” karakterinin kodu 48’dir ve rakamlar ardışıktır. Java’da char bir sayısal koddur. Aşağıdaki kodun çıktısı nedir?

char c = '7';
System.out.println(c + 1);
System.out.println((char) (c + 1));
System.out.println(c - '0');
Cevabı göster

Çıktı:

56
8
7
  • “7” = 48 + 7 = 55. c + 1 tam sayı toplamıdır → 56.
  • 56’yı tekrar karaktere çevirince “8” görünür.
  • c - '0' = 55 − 48 = 7: rakam karakterinin sayısal değeri. Aynı bit dizisinin anlamını tip belirler.

Adım Adım Çalıştırma · Metin Temsili

Soru 11: “Ali” Kelimesini Kodlama

ASCII kodları A = 65, l = 108, i = 105’tir. Algoritma “Ali” kelimesinin her karakteri için ne yazdırır? Kelime bellekte kaç bayt tutar?

Her karakter önce bir sayıya, sayı da 8 bitlik bir bayta çevrilecek.

İlk karakter A → 65.

65 = 64 + 1 → 01000001.

İkinci karakter l → 108.

108 = 64 + 32 + 8 + 4 → 01101100.

Üçüncü karakter i → 105.

105 = 64 + 32 + 8 + 1 → 01101001.

“A”01000001“l”01101100“i”011010013 bayt = 24 bit, bellekte art arda

Karakter kalmadı. Kelime 3 bayt = 24 bit tutar.

metin ← “Ali”
her karakter c için:
    kod ← ASCII(c)
    yaz(ikili8(kod))

Adım Adım Çalıştırma · Metin Temsili

Soru 12: UTF-8 Kodlama: “ş”

Unicode “ş” harfine U+015F kod noktasını atar. UTF-8 bu harfi hangi baytlarla saklar? 2 baytlık şablon 110xxxxx 10xxxxxx’tir.

015F₁₆ = 1·256 + 5·16 + 15 = 351.

351 = 256 + 64 + 16 + 8 + 4 + 2 + 1. 7 bite sığmaz (ASCII değil) ama 11 bite sığar → 2 bayt.

11 bit, şablondaki x’lere göre 5 + 6 olarak bölünür.

Baştaki 110, “2 baytlık karakterin ilk baytı” demektir.

Baştaki 10, “devam baytı” demektir.

11000101= C5₁₆10011111= 9F₁₆turuncu: şablon bitleri · mavi: kod noktası bitleri

“ş” = C5 9F (2 bayt). ASCII harfler 1, € 3, emoji 4 bayt tutar.

c ← “ş”
kod ← U+015F
ikili ← 11 bitlik(kod)
üst ← ilk 5 bit
alt ← son 6 bit
bayt1 ← 110 + üst
bayt2 ← 10 + alt
yaz(onaltılık(bayt1, bayt2))

Çoktan Seçmeli · Metin Temsili

Soru 13: Unicode ve UTF-8

Unicode ve UTF-8 ile ilgili hangisi doğrudur?

D: UTF-8 değişken uzunluklu bir kodlamadır; ASCII karakterleri tek baytla yazılır, böylece eski ASCII metinler geçerli UTF-8 olur. “A” = U+0041 = 65, ASCII ile aynıdır. Unicode farklı yazı sistemlerini, matematik simgelerini ve emojiyi kapsar.

Çıktı Sorusu · Mantık Kapıları

Soru 14: NOT, AND, OR Birlikte

X = NOT (A AND B) OR C ifadesinin değerini aşağıdaki üç durum için bulun (önce parantez, sonra NOT, en son OR).
a) A = 1, B = 1, C = 0
b) A = 1, B = 0, C = 0
c) A = 1, B = 1, C = 1

Cevabı göster
A AND BNOT(…)OR CX
a100 OR 00
b011 OR 01
c100 OR 11

NOT değeri tersine çevirir (0 → 1, 1 → 0). OR’da tek bir 1 yeterlidir; bu yüzden C = 1 iken A ve B ne olursa olsun X = 1’dir.

Adım Adım Çalıştırma · Mantık Kapıları

Soru 15: İkili Toplama: 11 + 7

1011₂ + 0111₂ toplamını sütun sütun yapan algoritmayı izleyin. Her sütunda t, yazılan basamak ve elde ne olur?

Onluktaki gibi sağdan sola. Kural: 1 + 1 = 10₂ (0 yaz, elde 1).

1. sütun: 1 + 1 = 10₂ → 0 yaz, elde 1.

2. sütun: 1 + 1 + 1 (elde) = 11₂ → 1 yaz, elde 1.

3. sütun: 0 + 1 + 1 = 10₂ → 0 yaz, elde 1.

4. sütun: 1 + 0 + 1 = 10₂ → 0 yaz, elde 1.

elde1111A1011(11)B0111(7)toplam10010(18)

Son elde başa yazılır: 10010₂ = 16 + 2 = 18 = 11 + 7 ✓. Sonuç 5 bit gerektirdi.

A ← 1011        ; 11
B ← 0111        ; 7
elde ← 0
sağdan sola her sütun i için:
    t ← A[i] + B[i] + elde
    basamak ← t mod 2
    elde ← t div 2
elde = 1 ise başa 1 yaz

Adım Adım Çalıştırma · Mantık Kapıları

Soru 16: Tam Toplayıcı: 1 + 0 + 1

Tam toplayıcı iki yarım toplayıcı ve bir OR kapısından oluşur. A = 1, B = 0, gelen elde Cin = 1 için her kapının çıkışı nedir?

Yarımtoplayıcı 1Yarımtoplayıcı 2ORABc1s1CinSUMc2Cout

Yarım toplayıcı: SUM = XOR, CARRY = AND. Tam toplayıcı gelen eldeyi de toplar.

1 XOR 0 = 1 (girdiler farklı).

1 AND 0 = 0: ilk toplamada elde yok.

1 XOR 1 = 0: sonuç basamağı 0.

1 AND 1 = 1: elde ikinci yarım toplayıcıdan geldi.

0 OR 1 = 1.

(Cout, SUM) = 10₂ = 2 = 1 + 0 + 1 ✓.

A ← 1, B ← 0, Cin ← 1
s1 ← A XOR B          ; 1. yarım toplayıcı
c1 ← A AND B
SUM ← s1 XOR Cin      ; 2. yarım toplayıcı
c2 ← s1 AND Cin
Cout ← c1 OR c2
yaz(Cout, SUM)

Adım Adım Çalıştırma · Getir–Çöz–Yürüt

Soru 17: Programı Adım Adım Çalıştırma

CPU aşağıdaki bellek içeriğini 1000 adresinden başlayarak çalıştırıyor. Her getir ve yürüt adımında PC, IR, ACC ve bellek[1007] ne olur?

Başlangıç: PC ilk komutun adresini tutar.

Getir: 1000’deki komut IR’ye gelir, PC bir artar.

Çöz + yürüt: bellek[1005] = 9 okunur, ACC’ye yüklenir.

Getir: ADD 1006; PC → 1002.

ALU: 9 + 6 = 15.

Getir: aynı komut bir kez daha; PC → 1003.

ALU: 15 + 6 = 21.

Getir: STORE 1007; PC → 1004.

ACC’deki 21 veri yoluyla 1007 adresine yazılır.

Getir: HALT → CPU durur. 5 komut, 5 tur; sonuç 9 + 6 + 6 = 21. HALT olmasaydı CPU 1005’teki 9’u komut sanardı.

1000: LOAD 1005   ; ACC ← bellek[1005]
1001: ADD 1006    ; ACC ← ACC + bellek[1006]
1002: ADD 1006
1003: STORE 1007  ; bellek[1007] ← ACC
1004: HALT
1005: 9
1006: 6
1007: 0

Çıktı Sorusu · Getir–Çöz–Yürüt

Soru 18: Komutların Yeri Değişirse

Sunumdaki programda STORE ile ADD’in yeri değiştirilmiş. Program bitince ACC ve bellek[1006] ne olur? Kaç komut getirilir?

1000: LOAD 1004
1001: STORE 1006
1002: ADD 1005
1003: HALT
1004: 12
1005: 8
1006: 0
Cevabı göster

ACC = 20, bellek[1006] = 12; 4 komut getirilir.

  • LOAD → ACC = 12. STORE → bellek[1006] = 12 (o anki ACC).
  • ADD → ACC = 12 + 8 = 20, ama bu değer belleğe hiç yazılmaz.
  • HALT → dur. CPU komutları sırayla yürütür; sıra sonucu değiştirir.
10041210058100612

Çoktan Seçmeli · Veri Yolları

Soru 19: Adresi Hangi Yol Taşır?

CPU, 1004 adresindeki değeri okuyor. “1004” sayısını belleğe hangi yol taşır?

B: Adres yolu hangi hücrenin istendiğini taşır ve tek yönlüdür (CPU’dan çıkar). Kontrol yolu OKU/YAZ ve zamanlama sinyallerini, çift yönlü veri yolu ise hücrenin içeriğini taşır.

Çıktı Sorusu · Komut Kodlama

Soru 20: Makine Komutunu Çözme

Varsayımsal bir makinede komut 16 bittir: ilk 4 bit opcode (HALT = 0000, LOAD = 0001, ADD = 0010, STORE = 0011), kalan 12 bit adrestir.
a) 0011 0011 1110 1110 hangi komuttur?
b) LOAD 1004 nasıl kodlanır?
c) Kaç farklı adres gösterilebilir?

Cevabı göster

a) STORE 1006   b) 0001 0011 1110 1100   c) 4.096

0011001111101110opcode 0011adres (12 bit) = 1006STORE0011 1110 1110 = 3EE₁₆
  • a) 001111101110₂ = 3EE₁₆ = 3·256 + 14·16 + 14 = 1006.
  • b) 1004 = 3EC₁₆ = 0011 1110 1100.
  • c) 12 bit → 2¹² = 4.096 adres (0–4095).

Çoktan Seçmeli · Bilgisayar Mimarisi

Soru 21: von Neumann Darboğazı

“von Neumann darboğazı” neyi ifade eder?

A: Ortak bellek ve ortak yol esneklik sağlar (depolanan program) ama CPU, bellekteki veriyi beklerken boş kalabilir. Önbellek bu darboğazı hafifletmek için vardır. C yanlıştır: depolanan program yaklaşımı tam tersine yazılımla güncellemeyi mümkün kılar.

Çoktan Seçmeli · Programlama

Soru 22: Java’dan Assembly’ye

int fark = a - b; satırının, sunumdaki komutlarla doğru assembly karşılığı hangisidir?

C: Önce a bellekten yazmaca yüklenir (ALU yalnızca yazmaçlarla çalışır), sonra b çıkarılır, en son sonuç fark değişkeninin yerine yazılır. A’da çıkarma, R1’e a yüklenmeden yapılır. Tek bir Java satırı birkaç makine komutuna dönüşür.

Son

Bilgisayarlar: Çalışma Soruları
Konu anlatımı: Bilgisayarlar sunumu
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.