Taban dönüşümü, bir tam sayının değerini değiştirmeden başka bir basamak sistemiyle yazılmasıdır. Bu araç kaynak ve hedef için 2 ile 36 arasındaki tam sayı tabanlarını kullanır. İkilik, sekizlik, onluk ve onaltılık sık kullanılan örneklerdir; aradaki diğer tabanlar da seçilebilir. Sayı alanı metin olarak okunur. Böylece büyük bir tam sayı, önce küçük hassasiyetli bir sayıya çevrilip yuvarlanmadan işlenebilir.

Başlangıç örneği FF sayısını 16 tabanından 10 tabanına çevirir. F basamağı 15 değerindedir; 15×16+15=255 olur. Ana sonuç 255’tir. Sayının kendisi aynı kalmıştır, yalnız gösterimi değişmiştir. Sonucu başka bir yere aktarırken taban bilgisini de koruyun. Örneğin 10 yazımı, kaynak tabanına göre farklı değerleri anlatabilir; çıplak basamak dizisi her durumda onluk sayı demek değildir.

Önce kaynak tabanı doğru seçin

Kaynak taban, sayı alanına yazdığınız dizinin nasıl okunacağını belirler. 101 ikilikte 5, onlukta 101, onaltılıkta 257 değerine karşılık gelir. Aynı karakterler farklı basamak ağırlıklarıyla okunur. Sayının görünüşünden taban kendiliğinden tahmin edilmez. Elinizdeki metnin hangi sistemde verildiğini önce belirleyin; yalnız içinde harf bulunmadığı için onluk olduğunu varsaymayın.

Hedef taban ise aynı tam sayının nasıl yazılacağını seçer. Kaynak ve hedef aynıysa değer korunur, fakat baş sıfırları ve harf büyüklüğü düzenlenebilir. Örneğin 000ff, 16’dan 16’ya çevrildiğinde FF olur. Bu yeni bir sayıya dönüşüm değildir; aynı değerin kanonik yazımıdır. Belirli bir kodun metin uzunluğunu korumak istiyorsanız bu işlemin yalnız sayı değerini koruduğunu hesaba katın.

Hangi basamaklar kullanılabilir?

Basamak alfabesi 0–9 ve A–Z’den oluşur. Rakamlar olağan değerlerini, A=10, B=11 ve devamındaki harfler sırayla 35’e kadar değerleri temsil eder. Bir basamağın değeri kaynak tabandan küçük olmalıdır. İkilikte yalnız 0 ve 1, sekizlikte 0–7, onaltılıkta 0–9 ve A–F kullanılabilir. Z basamağı ancak 36 tabanında geçerlidir.

Küçük harfler de kabul edilir ve sonuçta büyük harfe çevrilir. ff ile FF aynı onaltılık sayıdır. Ancak başka alfabelerdeki benzer karakterler, Türkçe harfler veya tam genişlikli rakamlar bu alanın basamakları değildir. Görünüş benzerliği aynı basamak değeri anlamına gelmez. Bir kopyalama sonrasında hata alırsanız harf ve rakamların gerçekten desteklenen ASCII karakterler olduğunu kontrol edin; araç bunları tahmin ederek değiştirmez.

Bir sayıyı basamak ağırlıklarıyla çözün

Konumsal gösterimde en sağdaki basamak tabanın sıfırıncı kuvvetiyle çarpılır. Bir sola gidildiğinde kuvvet bir artar. 101₂ için 1×2²+0×2¹+1×2⁰=5 bulunur. Ortadaki sıfır değere yeni bir katkı vermez, fakat basamak konumunu korur. Bu yüzden içerideki sıfırı silmek genellikle sayıyı değiştirir. Baş sıfırlarıyla iç sıfırların rolünü birbirinden ayırın.

Onaltılık FF örneği 15×16¹+15×16⁰=255 biçiminde okunur. Daha uzun dizilerde aynı yöntem sürer. Araç soldan sağa ilerleyerek birikmiş değeri kaynak tabanla çarpar ve sıradaki basamağı ekler. Bu işlem bütün dizi için yapılır; geçersiz bir basamak geldiğinde öncesindeki bölümle yetinilmez. Hata düzeltilmeden eksik okunmuş bir sayı başarılı sonuç olarak sunulmaz.

Hedef yazımı bölüm ve kalanla kontrol edin

Pozitif tam sayının hedef tabana yazımı, ardışık bölüm ve kalanlarla elle kontrol edilebilir. Örneğin 255’i 16’ya böldüğünüzde bölüm 15, kalan 15 olur. 15 de 16’dan küçük olduğundan son basamaktır. Kalanlar ters sırada F ve F olarak okunur; sonuç FF’tir. Bu yöntem sayı değerini değiştirmez, basamakların nasıl oluştuğunu gösterir.

İkilik hedefte aynı sayı 11111111 olur. Her basamak yine yalnız 0 veya 1’dir. Bölme sırasında oluşan kalanları yanlış yönde okumak farklı bir dizi verir; son kalandan başlayarak ilerlemek gerekir. Araç ana sonucu hazır verir, ancak küçük örneklerde bu elle kontrol dönüşümün anlamını görmenizi sağlar. Uzun sayılar için bütün bölme adımlarını büyük bir tabloya dökmez; sonuç ve yardımcı sayımlar birlikte sunulur.

Negatif sayıda işaret ayrı tutulur

Negatif bir sayı için alanın başına düz eksi işareti yazabilirsiniz. Önce mutlak tam sayı kaynak tabanda okunur, sonra eksi işareti korunur. Örneğin −FF₁₆, −255₁₀ ve −11111111₂ aynı negatif değerin farklı yazımlarıdır. Eksi işareti basamak değildir; girdi ve hedef basamak sayımlarına dahil edilmez. Artı işareti, parantez veya metin içinde ikinci bir eksi bu biçimde kabul edilmez.

Buradaki ikilik negatif yazım sabit bitli ikiye tümleyen gösterimi değildir. −1 sonucu başında eksi olan 1 olarak yazılabilir; kendiliğinden sekiz adet 1’e dönüştürülmez. İkiye tümleyen için bit genişliği ve işaretli kodlama kuralı ayrıca gerekir. Bu form bu bilgileri almaz. Bir işlemcinin kayıt değerini, dosya baytlarını veya işaretli veri alanını çözmeye çalışıyorsanız yalnız tam sayı taban dönüşümünün yeterli olmadığını dikkate alın.

Baş sıfırlar ve sıfırın kendisi

000FF₁₆ ile FF₁₆ aynı değerdir. Araç sonuçta gereksiz baş sıfırlarını kaldırır; girdi basamak sayısı ise başlangıçtaki basamakları sayar. −000ff için işaret hariç beş girdi basamağı vardır. Kanonik kaynak FF iki basamak, kaldırılan baş sıfır sayısı üçtür. Hedef ikilik sonuç −11111111 olduğunda hedef basamak sayısı sekizdir; eksi yine ayrı tutulur.

Tamamı sıfır olan diziler 0’a dönüşür. −000 da 0 olarak gösterilir; tam sayı değerinde ayrı bir negatif sıfır sonucu tutulmaz. Başta bulunan bütün sıfırlar silinip boş metin bırakılmaz; sıfırın tek basamaklı yazımı korunur. Bir ürün kodundaki veya kimlikteki baş sıfırlar anlamlı metin uzunluğu taşıyorsa sayıya dönüştürmek bu bilgiyi korumaz. Bu araç sayı değeriyle çalışır, kod biçimiyle değil.

Büyük tam sayıları yuvarlamadan dönüştürün

Bazı sayısal sistemler büyük tam sayıları temsil ederken son basamakları yuvarlayabilir. Bu araçta bütün sayı BigInt tam sayı aritmetiğiyle kurulur. Örneğin 9007199254740993, yani 2⁵³+1, onaltılıkta 20000000000001 olarak çıkar. 9007199254740992’ye düşürülmez. Hem ana hedef yazımı hem onluk karşılık metin olarak saklanır; son aşamada tekrar sınırlı hassasiyetli bir sayıya çevrilmez.

Bu koruma girdi metnindeki basamakları korur. Başka bir uygulama sayıyı daha önce yuvarladıysa kaybolmuş basamaklar burada geri getirilemez. Büyük değeri kaynağından tam metin olarak kopyalayın ve onluk karşılık satırını kontrol edin. Bir elektronik tablonun uzun sayıyı bilimsel yazıma çevirmiş olması ya da son basamaklarını değiştirmesi farklı bir girdi oluşturabilir. Doğru metni almak, dönüşümün kendisi kadar önemlidir.

Önekler otomatik tanınmaz

Programlama dillerinde 0x, 0b veya 0o gibi başlangıçlar farklı tabanları seçmek için kullanılabilir. Bu formda taban ayrı alandan seçilir; başlangıç metni önek diye çıkarılmaz. Onaltılık FF için sayı alanına FF, kaynak tabana 16 yazın. 0xFF yazarsanız X, 16 tabanında geçersiz basamak olduğundan hata alınır. Araç buradan sessizce FF bölümünü ayırıp 255 üretmez.

Aynı harfler yüksek tabanlarda normal basamak olabilir. Örneğin 0B, 16 tabanında geçerli 11 sayısıdır; ikilik önek gibi yorumlanmaz. 0XFF, 36 tabanında X=33 ve F=15 değerleriyle 43323 eder. Burada 0X kaldırılmaz; X gerçek basamaktır. Bu ayrım nedeniyle öneğe benziyor diye bütün tabanlarda aynı diziyi yasaklamak da doğru olmaz. Seçtiğiniz kaynak taban her basamağın anlamını belirler.

E harfi bilimsel üs anlamına gelmez

Onluk sayı alanına 1E3 yazmak bu araçta 1000 anlamına gelmez; E, 10 tabanında geçersizdir. Buna karşılık 16 tabanında 1E3 geçerli bir tam sayıdır: 1×256+14×16+3=483. E harfi burada değeri 14 olan sıradan basamaktır. Araç bilimsel gösterimi otomatik açmaz veya üsteki rakamları başka bir işlemle yorumlamaz. Taban bilgisini bu tür görünüşlerden bağımsız düşünün.

Benzer biçimde n harfi bazı tabanlarda normal basamak olabilir; programlama dilindeki tam sayı son eki diye soyulmaz. Alt çizgi veya boşlukla basamak gruplama da kabul edilmez. Nokta ve virgül kesir ya da binlik ayırıcı olarak okunmaz. Bu formun sayı alanı, ondalık finans araçlarının sayı yazımıyla aynı alan değildir; yalnız seçilen tabanın tam sayı basamakları ve isteğe bağlı baş eksi kullanılır.

Alan sınırı ve uzun sonuçlar

Sayı metni en fazla 200 karakter olabilir. Eksi işareti ve baştaki/sondaki boşluklar bu giriş uzunluğu sınırına dahildir; hesap başlarken dış boşluklar temizlenir. İç boşluk, satır sonu ve ayırıcı kullanılmaz. Kaynak ve hedef tabanların ikisi de 2–36 arasında tam sayı olmalıdır. Kesirli bir taban veya tek basamaklı bir taban sistemi bu formda seçilmez.

Küçük bir tabana geçişte sonuç daha fazla basamak içerebilir. İki yüz adet Z içeren 36 tabanlı en büyük kabul edilmiş pozitif örnek, ikilikte 1034 basamağa ulaşabilir. Bu sayı hata veya yuvarlama değildir; aynı değerin daha küçük tabandaki uzun yazımıdır. Uzun hedef metni ayrıca tam metin satırında korunur. Kopyalarken yalnız görünen ilk kısmı seçmediğinizi, metnin tamamını aldığınızı kontrol edin; basamak sayımı bu kontrolü kolaylaştırır.

Onaltılıktan ikiliğe dörtlü gruplarla bakın

Onaltılık bir basamak 0 ile 15 arasında değer taşır; bu değerler en fazla dört ikilik basamakla yazılabilir. F için 1111, A için 1010, 0 için 0000 biçiminde dörtlü gruplar kurulabilir. FF örneğinde iki grup 1111 ve 1111 birleştirilerek 11111111 elde edilir. Bu ilişki küçük bir onaltılık örneğin ikilik sonucunu elle gözden geçirmek için kullanışlıdır. Her harfin doğru değerini kullandığınızı ayrıca kontrol edin.

Ancak dörtlü grup yöntemiyle geçici olarak yazılan baş sıfırları bu aracın sonuçta sabit bir genişlik koruduğu anlamına gelmez. 0A onaltılık için gruplar 0000 ve 1010 olabilir; tam sayının kanonik ikilik sonucu 1010’dur. Baştaki sıfırlar değer taşımadığı için kaldırılır. Bir baytın bütün sekiz bitini gösterme amacıyla tam sayı değerinin en kısa yazımını birbirinden ayırın. Burada hedef basamak sayısı işlemci veya dosya alanının genişliği diye adlandırılmaz.

Bu tür bir elle kontrol yalnız uygun taban ilişkisine dayanır. Örneğin onluk basamakların her birini ayrı ayrı ikiliye çevirip yan yana koymak genel olarak onluk tam sayının doğru ikilik yazımını vermez. 12 onluk sayısı için 1 ve 2’yi ayrı kodlamak yerine bütün 12 değeri dönüştürülür; sonuç 1100’dür. Basamak değerleriyle karakterlerin ayrı kodlarını karıştırmamak, doğru dönüşüm yöntemini seçmenize yardımcı olur. Aynı sonuç metninin neyi temsil ettiğini açık tutun.

Sonucu yeniden kaynak tabana çevirerek kontrol edin

Hedef sonuç yeniden kaynak tabana çevrildiğinde aynı tam sayıya dönmelidir. Ancak kanonik yazım nedeniyle başlangıçtaki küçük harfler ve gereksiz baş sıfırları geri gelmeyebilir. Örneğin 000ff önce 255, sonra FF olur. Kontrolün amacı aynı metin biçimini değil aynı sayı değerini doğrulamaktır. Onluk karşılık da iki gösterimin ortak değeri olarak yardımcı olur.

Bir hedef metin 200 karakterden uzunsa aynı formun giriş sınırını aşabilir. Bu durumda geri dönüşü formda doğrudan denemek için sonucu kesmeyin; kesmek başka bir sayı oluşturur. Giriş sınırı, üretilen sonucun hatalı olduğu anlamına gelmez. Sonucu aktarırken kaynak/hedef tabanlarını, işareti ve bütün basamakları birlikte koruyun. Paylaşım bağlantısı aracı açar; sizin sayınızı ve alanlarınızı kendiliğinden yeniden yüklediğini varsaymayın.