Nasıl kullanılır?
- Taban dönüştür sekmesinde sayıyı yazın ve "Girdiğiniz sayının tabanı" listesinden doğru tabanı seçin: onlu için 10, ikili için 2, onaltılı için 16. Sonuçlar yazdıkça güncellenir; Enter ya da "Dönüştür" düğmesi de aynı işi yapar.
- İkili, sekizli, onlu ve onaltılı sonuçlar her zaman birlikte gösterilir. Bunların dışında bir taban gerekiyorsa "Özel hedef taban" listesinden 2 ile 36 arasında seçin; 36 tabanında rakamlar 0-9 ve A-Z olur.
- Negatif sayı için başa eksi işareti koyun. Ondalık kesir için virgül ya da nokta kullanın; kesirli kısım en fazla 20 basamak üretilir. Sonuç satırlarındaki "Kopyala" düğmesiyle değeri panoya alın.
- Bit düzeyinde çalışmak için Bit işlemleri sekmesine geçin: bit genişliğini (8, 16, 32 ya da 64) ve işlemi seçin, A ve B değerlerini girin. Sonuç ikili, onaltılı, işaretsiz ve işaretli onlu olarak görünür.
- Bir metnin karakter kodlarını görmek için Karakter kodları sekmesine metni yapıştırın; her karakter için Unicode, onlu, onaltılı, ikili ve UTF-8 bayt değerleri tabloda listelenir.
Sayı tabanı nedir?
Günlük hayatta sayıları onlu sistemle yazarız: on rakam (0-9) vardır ve her basamak bir önceki basamağın on katını temsil eder. 345 sayısı 3×100 + 4×10 + 5×1 demektir. Sayı tabanı bu "on" sayısının yerine başka bir sayı koymaktır. İkili sistemde yalnızca 0 ve 1 vardır ve basamaklar 2'nin kuvvetleridir; 1011 sayısı 1×8 + 0×4 + 1×2 + 1×1 olarak 11'e eşittir. Sekizli sistemde 0-7, onaltılı sistemde 0-9 ve A-F rakamları kullanılır. A, 10; F ise 15 değerindedir. 36 tabanında alfabenin tamamı rakam olur: Z, 35 değerini taşır.
Bilgisayarlar elektrik devrelerinde "açık" ve "kapalı" durumlarıyla çalıştığı için her şeyi ikili düzende saklar. Ancak uzun ikili diziler insan gözüyle okunmaz. Onaltılı sistem bu yüzden yaygındır: her onaltılı rakam tam dört bit (bir yarım bayt) karşılığıdır. 11111111 yazmak yerine FF yazmak çok daha kısadır ve iki rakam tam bir baytı ifade eder. Sekizli sistem ise üçer bitlik gruplara karşılık gelir ve özellikle Unix dosya izinlerinde (chmod 755 gibi) karşımıza çıkar.
Taban dönüşümü nasıl yapılır?
Başka tabandan onluya çevirmek için her rakam, bulunduğu basamağın taban kuvvetiyle çarpılıp toplanır. Örneğin onaltılı 2F, 2×16 + 15 = 47'dir. Onludan başka tabana çevirmek için sayı hedef tabana ardışık olarak bölünür, kalanlar sondan başa doğru okunur. 47'yi ikiliye çevirirsek 47 = 23×2 + 1, 23 = 11×2 + 1, 11 = 5×2 + 1, 5 = 2×2 + 1, 2 = 1×2 + 0, 1 = 0×2 + 1 olur; kalanlar sondan başa okunduğunda 101111 bulunur. Bu araç aynı işlemi sizin yerinize yapar ve tüm tabanları aynı anda gösterir. Hesap, JavaScript'in sınırlı kayan nokta sayıları yerine BigInt ile yapıldığı için yüzlerce basamaklı sayılar bile kayıpsız dönüştürülür. 2^64 değeri olan 18446744073709551616 sayısı onaltılıda tam olarak 10000000000000000 çıkar.
Ondalık kesirlerin dönüşümü
Kesirli bir sayıyı başka tabana çevirirken tam kısım bölme yöntemiyle, kesir kısmı ise ardışık çarpma yöntemiyle çevrilir: kesir hedef tabanla çarpılır, çarpımın tam kısmı bir sonraki basamak olur, kalan kesirle işlem tekrarlanır. 0,5 ikilide 0,1 olur çünkü 0,5×2 = 1,0 işleminde tam kısım 1 çıkar ve kalan sıfırdır. Buna karşılık 0,1 sayısı ikilide sonsuza kadar uzar (0,000110011001100…). Bilgisayarların 0,1+0,2 işleminde tam 0,3 bulamamasının nedeni budur. Bu araç kesirli kısmı en fazla 20 basamakta keser ve bunu notta belirtir; 20 basamak sonrası yuvarlanmaz, kesilir.
Negatif sayılar ve two's complement
Bilgisayarlar negatif sayıları genellikle "ikiye tümleyen" (two's complement) gösterimiyle saklar. Yöntemde sabit bir bit genişliği seçilir; negatif sayı için önce pozitif karşılığının bitleri ters çevrilir (NOT), sonra 1 eklenir. −5 için 8 bitte: 5 = 00000101, ters çevrilince 11111010, 1 eklenince 11111011. Bu yüzden 8 bitlik işaretli bir bellekte 11111011 değeri −5, işaretsiz okunduğunda ise 251 anlamına gelir. En soldaki bit işaret bitidir: 1 ise sayı negatiftir. 8 bit işaretli aralık −128 ile 127, 16 bit için −32768 ile 32767, 32 bit için yaklaşık ±2,1 milyardır.
Bit işlemleri sekmesi bu gösterimi doğrudan üretir. A değerine −5 yazıp 8 bit ve "Yalnızca A'nın gösterimi" seçeneğini işaretlerseniz 11111011 görürsünüz. Seçtiğiniz genişliğe sığmayan bir sayı yazarsanız aracın verdiği hata mesajı geçerli aralığı da söyler.
Bit işlemleri: AND, OR, XOR, NOT ve kaydırma
- AND: İki bit de 1 ise 1 verir. Belirli bitleri sıfırlamak ya da maskelemek için kullanılır; örneğin bir sayının alt dört bitini almak için 15 (0xF) ile AND yapılır.
- OR: Bitlerden biri 1 ise 1 verir. Belirli bitleri açmak için kullanılır; bayrak (flag) birleştirmede yaygındır.
- XOR: Bitler farklıysa 1 verir. Bitleri tersine çevirmek ve basit şifreleme ya da sağlama toplamlarında kullanılır.
- NOT: Her biti tersine çevirir. Seçilen bit genişliği içinde çalışır; 8 bitte NOT 0 sonucu 255'tir (işaretli okunduğunda −1).
- Sola kaydırma (<<): Bitleri sola iter; her adım sayıyı 2 ile çarpmak gibidir. Genişliği aşan bitler atılır.
- Sağa kaydırma (>> ve >>>): İşaretli kaydırma işaret bitini korur (negatif sayılar negatif kalır), işaretsiz kaydırma soldan sıfır doldurur.
ASCII ve Unicode kod tablosu
Bilgisayar metni de sayılarla saklar. ASCII standardı 0-127 arasındaki sayılara harfleri, rakamları, noktalama işaretlerini ve kontrol karakterlerini atar: büyük A harfi 65, küçük a harfi 97, boşluk 32'dir. Türkçe karakterler (ç, ğ, ı, ö, ş, ü) ASCII'de yoktur; Unicode'da ayrı kod noktaları vardır, örneğin ğ için U+011F. Unicode kod noktaları UTF-8 ile bir ila dört bayt olarak saklanır; ASCII karakterler tek bayttır, Türkçe harfler iki bayt tutar, emojiler çoğunlukla dört bayt kaplar. Karakter kodları sekmesi her karakter için kod noktasını ve UTF-8 baytlarını göstererek kodlama sorunlarını (bozuk Türkçe karakterler gibi) anlamanıza yardım eder.
Neden Bilişim Ajans aracı?
- Büyük sayılar kayıpsız. BigInt kullanıldığı için JavaScript'in 2^53 sınırı yoktur; yüzlerce basamaklı sayılar da tam dönüşür.
- Tek sayfada hepsi. Taban dönüşümü, bit işlemleri ve karakter kodları ayrı araçlar aramadan aynı yerde.
- Açıklayıcı hatalar. Geçersiz rakamda hangi karakterin neden uymadığı ve o tabanda hangi rakamların kullanılabileceği söylenir.
- Veri gönderilmez. Tüm hesap tarayıcınızda yapılır; yazdıklarınız hiçbir sunucuya iletilmez.
- Çevrimdışı çalışır. Sayfa bir kez açıldıktan sonra internet olmadan da kullanılabilir.
Sık sorulan sorular
Onlu sayıyı ikiliye nasıl çeviririm?
Sayıyı yazın, "Girdiğiniz sayının tabanı" listesinde 10'u bırakın; ikili sonuç ilk satırda görünür. Örneğin 255 yazdığınızda 11111111 çıkar. Elle yapmak isterseniz sayıyı art arda 2'ye bölüp kalanları sondan başa okuyun.
Onaltılı (hex) sayıda hangi harfler kullanılır?
0-9 rakamlarının yanı sıra A, B, C, D, E ve F harfleri kullanılır; A=10, B=11, C=12, D=13, E=14, F=15. Büyük küçük harf fark etmez: "ff" ve "FF" aynı sayıdır. Sonuçlar büyük harfle gösterilir.
Negatif sayıları ikiliye nasıl çeviriyorsunuz?
Taban dönüştür sekmesi negatif sayıyı işaretle birlikte gösterir; −5 ikilide −101 olur. Bilgisayarda saklanan biçim için Bit işlemleri sekmesini kullanın: −5 sayısı 8 bitte 11111011, 16 bitte 1111111111111011 olarak ikiye tümleyen (two's complement) gösterimle görünür.
İki tabanı arasında en fazla kaç basamaklı sayı çevirebilirim?
Tam kısım için 5000 basamağa, kesirli kısım için 200 basamağa kadar girdi kabul edilir. Sonuçta kesirli kısım 20 basamakla sınırlandırılır. Sayılar BigInt ile hesaplandığı için basamak sayısı sonucu bozmaz.
0,1 sayısı neden ikilide tam çıkmıyor?
0,1 ikili düzende 0,0001100110011… biçiminde sonsuza kadar tekrar eder; tıpkı onlu düzende 1/3'ün 0,333… olması gibi. Araç bu durumda 20 basamak üretir ve kesildiğini belirtir. Kesirli sayıların bilgisayarlarda küçük yuvarlama hataları vermesinin nedeni de budur.
"Karakter bu tabanda geçerli değil" hatası ne demek?
Yazdığınız sayıda seçili tabanın izin vermediği bir rakam var. İkilide yalnızca 0 ve 1, sekizlide 0-7, onaltılıda 0-9 ve A-F kullanılabilir. Tabanı doğru seçtiğinizden emin olun; örneğin FF yazıp taban olarak 10 seçerseniz bu hatayı alırsınız. Önce tabanı 16 yapın.
İşaretli ve işaretsiz sayı arasındaki fark nedir?
Aynı bit dizisi iki farklı şekilde okunabilir. İşaretsiz okumada tüm bitler değer taşır (8 bitte 0-255). İşaretli (two's complement) okumada en soldaki bit işaret bitidir (8 bitte −128 ile 127). 11111011 değeri işaretsiz 251, işaretli −5'tir. Araç ikisini birlikte gösterir.
Kaydırma işlemlerinde işaretli ve işaretsiz sağa kaydırma nasıl farklılaşır?
İşaretli sağa kaydırmada (>>) soldan işaret bitinin kopyası girer; negatif sayılar negatif kalır. İşaretsiz kaydırmada (>>>) soldan sıfır girer. 8 bitte 11111011 (−5) değerini 1 bit işaretli kaydırırsanız 11111101 (−3), işaretsiz kaydırırsanız 01111101 (125) bulursunuz.
Girdiğim sayılar bir yere gönderiliyor mu?
Hayır. Dönüşüm ve bit işlemleri tamamen tarayıcınızda yapılır; yazdıklarınız hiçbir sunucuya iletilmez, saklanmaz, çerezle izlenmez.
İlgili araçlar
Size özel hesaplama aracı ya da web yazılımı ihtiyacınız varsa Bilişim Ajans ekibi yardımcı olur.