Binary / Decimal / Hexadecimal Dönüştürücü

Bir değer gir, anında tüm temsilleri gör. Bit'lere tıklayarak değiştir!

8-Bit Binary (tıkla değiştir)
0
0
1
0
1
0
1
0
128643216 8421

💡 Nasıl Çalışır?

42 = 32 + 8 + 2 = 25 + 23 + 21

Binary: 00101010

Hex: 4 bitlik gruplar → 0010 = 2, 1010 = A → 2A

Farklı Tabanlarda Toplama & Çıkarma

10'luk tabanda iki sayı gir, istediğin tabanda adım adım işlemi gör!

🔄 Taban Dönüşümü Nasıl Yapılır?

10'luk tabandaki sayıyı hedef tabana çevirmek için: Sürekli böl, kalanları tersten oku!

Sayı 1 Dönüşümü 25 → 8'lik taban
Kalanları tersten oku: 31
Sayı 2 Dönüşümü 17 → 8'lik taban
Kalanları tersten oku: 21
Sayı 1
25
11001
+
Sayı 2
17
10001

📝 Adım Adım Toplama/Çıkarma

Sayı 1:
+ Sayı 2:
Sonuç:
10'luk tabanda sonuç: 42

📖 İşlem Açıklaması

💡 Toplama Nasıl Yapılır?

Binary (Taban 2):

0+0=0, 0+1=1, 1+0=1, 1+1=10 (0 yaz, 1 elde)

Octal (Taban 8):

Sonuç ≥8 ise, 8'i çıkar ve 1 elde et. Örn: 5+6=13 (3 yaz, 1 elde)

Hex (Taban 16):

Sonuç ≥16 ise, 16'yı çıkar ve 1 elde et. Örn: A+9=13 (3 yaz, 1 elde)

Two's Complement Simülasyonu

Negatif sayıların binary gösterimini adım adım öğren

Orijinal (mutlak değer):
1's Complement (tersle):
2's Complement (+1):

📚 Two's Complement Nedir?

  • MSB (en sol bit) = işaret biti. 1 ise negatif.
  • 8-bit aralık: -128 ile +127
  • Kısayol: Sağdan sola ilk 1'i bul, ondan sonrakileri tersle

Sign Extension (SEXT)

Küçük bit sayılarını büyük bit sayılarına genişletirken işareti koruma

Orijinal (5-bit):
(-5)
↓ Sign Extension ↓
Genişletilmiş (16-bit):
(-5)

MSB (işaret biti) = 1 → Negatif sayı

Genişletilen bitlere 1 yazılır (işareti korumak için)

📚 Sign Extension Ne Zaman Kullanılır?

  • ADD imm5: 5-bit immediate → 16-bit (SEXT)
  • LD PCoffset9: 9-bit offset → 16-bit (SEXT)
  • LDR offset6: 6-bit offset → 16-bit (SEXT)
  • BR PCoffset9: 9-bit offset → 16-bit (SEXT)
  • JSR PCoffset11: 11-bit offset → 16-bit (SEXT)

MSB (en sol bit) 0 ise soldan 0'lar eklenir, 1 ise 1'ler eklenir!

Overflow Dedektörü

İki sayı topla ve overflow olup olmadığını gör

+
=
?
+

⚠️ Overflow Kuralı

Overflow = (A ve B aynı işaret) VE (sonuç farklı işaret)

  • (+) + (+) = (-) → OVERFLOW!
  • (-) + (-) = (+) → OVERFLOW!
  • (+) + (-) = herhangi → Overflow olmaz

Bit / Byte Dönüştürücü

Bilgi birimlerini birbirine çevir: bit, byte, KB, MB, GB

📏 Birim Hiyerarşisi

1 Bit0 veya 1
×8
1 Byte8 bit = 1 karakter
×1024
1 KB1024 byte
×1024
1 MB1024 KB
×1024
1 GB1024 MB

🎯 Sınav Soruları

S: 3 byte kaç bit?
C: 3 × 8 = 24 bit
S: 1 bit'te kaç farklı değer?
C: 2 değer → 0 veya 1
S: n bit'le kaç farklı değer?
C: 2n farklı değer

📚 Temel Kurallar

  • Bit = en küçük bilgi birimi (0 veya 1)
  • Byte = 8 bit = 1 karakter (örn: "A" harfi)
  • 1 KB = 1024 byte (210)
  • 1 MB = 1024 KB (220 byte)
  • 1 GB = 1024 MB (230 byte)

Bit Aralığı Seçici A[l:r]

Bir binary sayıdan belirli bitleri seçip çıkar. l = left (sol), r = right (sağ)

A[14:9] = 101001

📚 Köşeli Parantez [l:r] Kullanımı

  • Bitler sağdan sola numaralanır: bit 0 = en sağ, bit n-1 = en sol
  • A[l:r] → l'den r'ye kadar olan bitleri seç (ikisi dahil)
  • l (left) = sol sınır (büyük numara), r (right) = sağ sınır (küçük numara)
  • Seçilen bit sayısı = l - r + 1

Ör: A = 0101001101010101 → A[14:9] = 101001, A[2:0] = 101

DeMorgan Kanunu

NOT(A AND B) = NOT(A) OR NOT(B) ve NOT(A OR B) = NOT(A) AND NOT(B)

DeMorgan 1: NAND → NOR Eşdeğeri

Sol taraf NOT(A AND B)
A = 1, B = 0 A AND B = 0 NOT(0) = 1
=
Sağ taraf NOT(A) OR NOT(B)
NOT(A) = 0 NOT(B) = 1 0 OR 1 = 1
✓ Eşit! Kanıtlandı.

DeMorgan 2: NOR → NAND Eşdeğeri

Sol taraf NOT(A OR B)
A = 1, B = 0 A OR B = 1 NOT(1) = 0
=
Sağ taraf NOT(A) AND NOT(B)
NOT(A) = 0 NOT(B) = 1 0 AND 1 = 0
✓ Eşit! Kanıtlandı.

🔧 NAND Kapısı - Evrensel Kapı

Sadece NAND kapılarıyla tüm diğer kapılar yapılabilir:

NOT(A) = A NAND A
A AND B = (A NAND B) NAND (A NAND B)
A OR B = (A NAND A) NAND (B NAND B)

📚 DeMorgan Kuralları Özeti

Kanun Formül Kelime
1. Kanun NOT(A·B) = A' + B' "Çarpımın değili = değillerin toplamı"
2. Kanun NOT(A+B) = A' · B' "Toplamın değili = değillerin çarpımı"

Decoder (Kod Çözücü) Simülasyonu

n girişli decoder → 2n çıkış. Girişteki binary sayıya göre sadece bir çıkış aktif olur.

Giriş Değerleri

Giriş: 000 = 0
DECODER
3-to-8

Truth Table

📚 Decoder Nedir?

  • Girişe gelen binary sayıya göre çıkışlardan sadece birini aktif (1) yapar
  • n giriş → 2n çıkış (Ör: 3 giriş → 8 çıkış)
  • Ör: AB=01 ise → sadece 1. sıradaki çıkış "1", diğerleri "0"
  • Kullanım: Bellekte (memory) belirli bir adresi seçmek

Multiplexer (MUX) Simülasyonu

Birçok girişten sadece birini seçerek çıkışa gönderir — "trafik polisi" gibi

Veri Girişleri

Selector (Seçici)

Selector: S = 00 → Giriş A (D0) seçildi
4-to-1
MUX
Output: 0

Seçim Tablosu

S1S0Seçilen GirişÇıkış
00A (D0)0
01B (D1)1
10C (D2)0
11D (D3)1

📚 MUX vs Decoder Farkı

ÖzellikDecoderMultiplexer (MUX)
Girişlern-bit binary2n veri girişi + n-bit selector
Çıkışlar2n çıkış hattıTek bir çıkış
İşlevGirişe göre bir çıkışı aktif ederBirçok girişten birini seçip tek çıkışa gönderir
AnalojiKapı açıcı (hangi kapı?)Trafik polisi (hangi yol?)

Truth Table'dan Devre Tasarımı (SOP)

3 girişli (A, B, C) truth table'dan Sum of Products devresi oluştur ve test et

📝 Truth Table

Çıkışı 1 yapmak istediğin satırlara tıkla

# A B C F
00001
10010
20101
30110
41000
51011
61100
71111
SOP İfadesi: F = A'B'C' + A'BC' + AB'C + ABC

🧪 Devreyi Test Et

Giriş: 000 (0) Çıkış F: 1

🔧 Devre Görselleştirmesi

A
0
NOT
1
B
0
NOT
1
C
0
NOT
1
OR
F
1
Aktif (1)
Pasif (0)
NOT'lanmış

📊 Minterm Analizi

📚 Sum of Products (SOP) Nedir?

  • Minterm: Tüm girişlerin AND'lenmesi. Çıkış=1 olan her satır için bir minterm.
  • SOP: Minterm'lerin OR'lanması. F = m0 + m2 + m5 + m7
  • NOT kullanımı: Giriş 0 ise NOT'lanmış hali (A'), 1 ise direkt (A) kullanılır

Örnek: m5 = AB'C → A=1, B=0, C=1 için. B'nin NOT'u alınır çünkü 0.

Mantık Kapıları Simülasyonu

Girişleri değiştir, kapının çıkışını gör

0

4-Bit Adder / Subtractor

Toplama ve çıkarma devresinin nasıl çalıştığını gör

4×XOR B ⊕ Op 4-BIT ADDER Input A 0111 Input B 0101 0101 Op (Sub=1) 0 Cin Result 1100 Cout: 0
1 Op=0 ise toplama: B direkt geçer, Cin=0
2 Op=1 ise çıkarma: B XOR 1 = NOT(B), Cin=1

R-S Latch, D-Latch & Register Simülasyonu

Basit depolama birimlerinden register'a: adım adım öğren

🔒 R-S Latch (Basit Depolama Birimi)

En basit 1-bitlik hafıza devresi. İki girişi var: S (Set) ve R (Reset).

Çıkış (Q): 0
S=0, R=0 → ⚠️ Tanımsız durum (yapılmamalı!)
SRQ (Çıkış)Açıklama
00⚠️Tanımsız — yapılmamalı!
011SET → Çıkış 1 olur
100RESET → Çıkış 0 olur
11QprevEski değeri korur (bilgiyi saklar)

🔐 Gated D-Latch & Register

D-Latch, R-S Latch'in gelişmiş hali. WE (Write Enable) eklenerek kontrol edilir.

D Input 0001 WE 4-BIT REGISTER (4× D-Latch) Stored Value 0000

Durum: WE=0 → Register önceki değerini tutuyor

📚 Depolama Birimleri Özeti

  • R-S Latch: En basit 1-bitlik hafıza. S=Set, R=Reset. S=0,R=0 → Tanımsız!
  • Gated D-Latch: R-S Latch + WE kontrolü. WE=1 → D yazılır, WE=0 → eski değer korunur
  • Register: n adet D-Latch yan yana → n-bit depolama (ortak WE)

Von Neumann CPU Simülatörü

FETCH → DECODE → EXECUTE döngüsünü adım adım izle

DURUM: BEKLENİYOR

🔧 Kontrol Birimi

PC (Program Counter)
x3000
IR (Instruction Register)
----

📦 Bellek Arayüzü

MAR (Memory Address)
----
MDR (Memory Data)
----

⚙️ İşlem Birimi (ALU)

R0 (Accumulator)
0

🛤️ Veri Yolu (Datapath)

PC x3000 MAR ---- MEMORY x3000: LEA R0,#5 x3001: ADD R0,#1 x3002: ST R0,#10 x3003: HALT ... MDR ---- IR ---- ALU R0 0

💾 Bellek İçeriği

PC konumu MAR hedef

📋 İşlem Günlüğü

Sistem başlatıldı. "Adım At" butonuna basarak döngüyü başlatın.
1
FETCH
2
DECODE
3
EXECUTE

Memory Interface (MAR/MDR)

LOAD ve STORE işlemlerini simüle et

MAR ----
MDR ----

Bir işlem seç...

LC-3 Komutları Simülasyonu

Bir komut seç, ne yaptığını ve nasıl çalıştığını adım adım gör!

ADD ADD R1, R2, R3
Ne Yapar?

R2 ve R3 register'larındaki değerleri toplar, sonucu R1'e yazar.

Formül: R1 ← R2 + R3
Binary Format:
0001 001 010 0 00 011

🎬 Çalışma Animasyonu

Register File
R0x0000
R1x0000
R2x0005
R3x0003
R4x0000
R5x0000
R6x0000
R7x0000
?
Kaynak 1
?
Kaynak 2
+ ALU
?
Sonuç
Memory
x3009: x1234
x300A: xABCD
x300B: x5678
Condition Codes
N Z P

📋 Adım Adım Çalışma

1 Yukarıdan bir komut seçin ve "Animasyonu Başlat" butonuna tıklayın.

LC-3 Adresleme Modları

LEA, LD, LDI, LDR arasındaki farkları görsel olarak anla

PC x3000 + offset = #10 Effective Addr x300A MEMORY x3009: x1234 x300A: x5000 x300B: x0000 ... x5000: xABCD Register R1 ---- LEA R1, #10 Hesaplanan adres (x300A) doğrudan R1'e yazılır. Belleğe erişim YOK!
Komut R1'e Yazılan Bellek Erişimi
LEA R1, #10 x300A (adres) 0
LD R1, #10 x5000 (M[x300A]) 1
LDI R1, #10 xABCD (M[M[x300A]]) 2
LDR R1, R2, #5 M[R2+5] 1

Condition Codes (N, Z, P)

Register'a yazılan değere göre hangi flag set edilir?

N 0 Negative
Z 1 Zero
P 0 Positive

Değer = 0Z = 1 (Zero flag set)

Branch Test

Bu condition code'larla hangi branch'ler alınır?

BRz ✓ BRzp ✓ BRnz ✓ BRn ✗ BRp ✗ BRnp ✗

📚 Condition Codes Kuralları

  • Her zaman tam olarak biri set edilir (N, Z, veya P)
  • Register'a değer yazan komutlar günceller: ADD, AND, NOT, LD, LDR, LDI, LEA
  • Store komutları (ST, STR, STI) güncellemez

📋 Hangi Komutlar CC Günceller? (ÖNEMLİ!)

Komut CC Günceller mi? Açıklama
ADD ✅ EVET Sonuç DR'ye yazılır, CC güncellenir
AND ✅ EVET Sonuç DR'ye yazılır, CC güncellenir
NOT ✅ EVET Sonuç DR'ye yazılır, CC güncellenir
LD ✅ EVET Bellekten okunan değer DR'ye yazılır
LDI ✅ EVET Indirect load, değer DR'ye yazılır
LDR ✅ EVET Base+offset load, değer DR'ye yazılır
LEA ✅ EVET Adres DR'ye yazılır (belleğe gitmez!)
ST ❌ HAYIR Sadece belleğe yazar, register değişmez
STI ❌ HAYIR Indirect store, register değişmez
STR ❌ HAYIR Base+offset store, register değişmez
BR ❌ HAYIR Sadece PC değişir, veri yok
JMP/RET ❌ HAYIR Sadece PC değişir
JSR/JSRR ❌ HAYIR R7'ye PC yazılır ama CC güncellenmez
TRAP ⚠️ Değişebilir Trap rutinine bağlı, genelde değiştirir

🎯 KURAL: Bir register'a değer YAZILIYORSA → CC güncellenir

🎯 İSTİSNA: JSR/JSRR R7'ye yazar ama CC güncellemez!