Nasıl kullanılır
- Dönüştürmek istediğiniz sayıyı "Sayı" alanına girin.
- "Girdi tabanı" listesinden sayının yazıldığı tabanı seçin: 2 ile 36 arası veya Base62.
- Sonucu aynı anda ikili, sekizlik, ondalık, onaltılık, Base36 ve Base62 olarak okuyun.
- Başka herhangi bir taban için onu "Özel taban" olarak seçin.
Baytlar değil, sayılar
Bu araç bir sayının değerini dönüştürür. Ondalık 255 sayısı ikili olarak 11111111, sekizlik olarak 377, hex olarak ff ve Base36'da 73 şeklinde yazılır.
Base16 ve Base2 gibi bayt kodlamaları ise başka bir iş yapar: metinleri veya dosyaları kodlar. 255 metni üç karakterdir ve hex olarak 32 35 35, ikili olarak 00110010 00110101 00110101 baytlarıyla saklanır. Bir sayının hex karşılığı için bu sayfayı, karakterlerin veya bir dosyanın hex karşılığı için bayt kodlayıcılarını kullanın.
Konumsal tabanlar nasıl çalışır
Her tabanda bir basamağın konum değeri, tabanın o konum kadar kuvvetidir; konumlar sağdan ve sıfırdan başlayarak sayılır. Hex ff, 15 × 16 + 15 = 255'tir; ikili 11111111 ise 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255'tir. 10'dan büyük tabanlar basamakları harflerle sürdürür; bu nedenle Base36'da a 10, z ise 35 anlamına gelir. Base62 diğer harf durumunu da ekler; bu yüzden orada büyük ve küçük harflerin değerleri farklıdır.
Bir hex basamağı tam olarak 4 biti, bir sekizlik basamak ise 3 biti temsil eder. Programcıların ikili sayıları kısaca yazmak için hex ve sekizlik gösterimi kullanmasının nedeni budur: 1111 1111, grup grup çevrilerek ff olur.
Büyük ve negatif sayılar
Dönüştürücü keyfi duyarlıklı tam sayılar (JavaScript BigInt) kullanır; bu nedenle uzun sayılar da tam olarak korunur. Birçok hesap makinesi ve sıradan JavaScript sayıları 9007199254740991 (2 üzeri 53 eksi 1) değerinin üzerinde duyarlık kaybeder. Örneğin parseInt('ffffffffffffffff', 16) 18446744073709552000 döndürür; oysa doğru değer, yani işaretsiz 64 bitlik en büyük tam sayı, 18446744073709551615'tir.
Negatif bir sayı eksi işaretiyle birlikte dönüştürülür; bu nedenle -255 hex olarak -ff olur. Bu, bellekte sabit genişlikli tam sayılar için kullanılan ikiye tümleyen (two's complement) biçimi değildir. Onu elde etmek için önce 2'nin genişlik kadar kuvvetini ekleyin: 8 bit için -1 + 256 = 255, yani ff. Kesirler değil, yalnızca tam sayılar desteklenir. Her şey tarayıcınızda çalışır.
Kodda taban dönüştürme
// JavaScript
parseInt('ff', 16); // sonuç: 255
(255).toString(2); // sonuç: '11111111'
BigInt('0xffffffffffffffff').toString(10); // sonuç: '18446744073709551615'
# Python
int('ff', 16) # sonuç: 255
bin(255), oct(255), hex(255) # sonuç: ('0b11111111', '0o377', '0xff')
Sıkça sorulan sorular
İkili bir sayıyı ondalığa nasıl dönüştürürüm?
İkili sayıyı girin, 2 tabanını seçin ve ondalık sonucu okuyun. Elle hesaplamak için 1 olan her basamağın basamak değerini toplayın: ikili 1010, 8 + 2 = 10 eder.
Ondalık bir sayıyı hex'e nasıl dönüştürürüm?
10 tabanı seçiliyken sayıyı girin ve hex sonucunu okuyun. Elle hesaplamak için sayıyı art arda 16'ya bölün ve kalanları ters sırayla yazın: 255'in 16'ya bölümü 15, kalanı 15'tir; bu da ff verir.
Sayının büyüklüğünde bir sınır var mı?
Sabit bir sınır yoktur. Araç BigInt aritmetiği kullanır; bu nedenle yüzlerce basamaklı bir sayı bile tam olarak dönüştürülür. Çok uzun sayılar yalnızca biraz daha uzun sürer.
255'in buradaki hex karşılığı neden Base16 kodlayıcısındakinden farklı?
Kesirli kısmı olan sayıları dönüştürebilir miyim?
Hayır. Dönüştürücü yalnızca tam sayılarla çalışır. 0,1 gibi kesirlerin başka bir tabanda çoğu zaman tam bir karşılığı yoktur; bu nedenle bunlar aracın kapsamı dışındadır.