Sayı Tabanı Dönüşümü
Bir sayıyı 2 ile 36 arasındaki herhangi bir tabandan başka bir tabana çevirin: ikili (binary), sekizli, onluk ve onaltılık (hex) karşılıkları birlikte, adım adım bölme tablosuyla. Kesirli sayılar ve çok uzun sayılar da çevrilir.
- Sekizli (8)377
- Onluk (10)255
- Onaltılık (16)FF
- Tam kısmın bit sayısı8
- 2 tabanında basamak sayısı8
2 ile art arda bölme (tam kısım)
Nasıl hesaplanır?
Bilgisayarlar veriyi ikili (0 ve 1) tabanda tutar; onaltılık taban her 4 ikili basamağı tek bir rakamla yazar. CSS renk kodları bu yüzden onaltılıktır: #1A2B3C, kırmızı 1A = 26, yeşil 2B = 43, mavi 3C = 60 demektir (CSS Color 4, §5.2). Sekizli taban Unix/POSIX dosya izinlerinde görülür: chmod 755, sahibine okuma-yazma-çalıştırma (7 = 4 + 2 + 1), gruba ve diğerlerine okuma-çalıştırma (5 = 4 + 1) verir. 2’den 36’ya kadar her taban 0–9 rakamları ve A–Z harfleriyle yazılır; JavaScript’in Number.prototype.toString(taban) işlevi de aynı 36 karakteri kullanır (ECMA-262 §6.1.6.1.20).
Onluğa: Σ dₖ × bᵏ · Onluktan: art arda b’ye bölme, kalanlar tersten okunurb: taban · dₖ: sağdan k. konumdaki rakam (k = 0’dan başlar). 10’dan büyük tabanlarda A = 10, B = 11, … Z = 35.- Girilen sayı, her rakamı tabanın kuvvetiyle çarpılıp toplanarak değerine çevrilir.
- Bu değer hedef tabana art arda bölünür; kalanlar aşağıdan yukarı okunduğunda hedef tabandaki rakamlar çıkar.
- Kesir kısmı hedef tabanla art arda çarpılır; her çarpımın tam kısmı bir rakam olur. Bitmeyen (devirli) kesirler 32 basamakta kesilir.
- Hesap tam sayı aritmetiğiyle yapılır, uzun sayılarda yuvarlama olmaz.
Örnek
255’i ikiliye çevirmek: 255 ÷ 2 = 127 kalan 1, 127 ÷ 2 = 63 kalan 1, … 1 ÷ 2 = 0 kalan 1; kalanlar tersten 11111111₂. Aynı sayı sekizlide 377₈, onaltılıkta FF₁₆’dır. 42 = 101010₂ = 52₈ = 2A₁₆. Kesir: 0,625 × 2 = 1,25 → 1; 0,25 × 2 = 0,5 → 0; 0,5 × 2 = 1 → 1, yani 0,625 = 0,101₂.
Sık sorulan sorular
İkiliden onaltılığa hızlı nasıl çevrilir?
İkili sayıyı sağdan 4’lü gruplara ayırın ve her grubu tek bir onaltılık rakama çevirin: 1101 1110₂ = DE₁₆. Sekizli için 3’lü gruplar kullanılır: 101 010₂ = 52₈.
0,1 neden ikili tabanda tam yazılamıyor?
Bir kesir, paydası yalnızca tabanın asal çarpanlarından oluşuyorsa o tabanda biter. 0,1 = 1/10 ve 10 = 2 × 5’tir; 5 ikili tabanın çarpanı olmadığı için 0,1 = 0,000110011…₂ diye sonsuza kadar sürer. Programlama dillerinin çoğu ondalık sayıları IEEE 754 binary64 biçiminde, 53 ikili basamakla saklar (JavaScript için ECMA-262 §6.1.6.1); 0,1 bu yüzden yuvarlanır ve 0,1 + 0,2 tam 0,3 çıkmaz.
Negatif sayılar nasıl çevrilir?
Araç işareti korur: −10 = −1010₂. Bilgisayarlardaki ikiye tümleyen (two’s complement) gösterim bit uzunluğuna bağlıdır: n bitte negatif bir sayı 2ⁿ’ye göre kalanı olarak saklanır, 8 bitte −10 → 256 − 10 = 246 = 11110110₂ (JavaScript’in ToUint8 dönüşümü de −10’u 246 yapar, ECMA-262 §7.1.11).
Kaynak
- ECMA-262 (ECMAScript 2025) §6.1.6.1.20 Number::toString(x, radix): 2–36 tabanları ve 0–9, a–z rakamları; §19.2.5 parseInt
- ECMA-262 §6.1.6.1: Number türü IEEE 754-2019 binary64 değerleridir
- ECMA-262 §7.1.11 ToUint8: tam sayının 2⁸’e göre kalanı
- IEEE 754-2019 Kayan Noktalı Aritmetik Standardı (binary64)
- W3C CSS Color Module Level 4, §5.2 Onaltılık RGB gösterimi (#RRGGBB)
- POSIX.1-2024 (IEEE Std 1003.1), chmod: sekizli izin bitleri (0400 … 0001)