Web ve programlamada sayı sistemleri-dönüşümleri

JrExclusive

Uzman üye
24 Eyl 2013
1,370
0
Anavatan
Konumuz bilgisayar ve webde kullanılan sayı sistemleri ve kodlamalardır.Konunun üniversitede lojik devre dönüşümleri gören öğrenci arkadaşlar ve programlama üzerinde meraklılar için işe yarayacağı inancındayım.
Bildiğimiz gibi bilgisayarlar sadece sayıları algılayabiliyor,program yazarken biz kodları yazarız,compiler programlar ise kodları binary(2'li sayı sisteme) çevirerek bilgisayarın anlamasını sağlar.
Web sayfalarında ise;örneğin sql açığından database çekerken hex kodlarıyla karşılaşırız."Hex" hexadecimal kelimesinin kısaltılmış halidir.Yani hex 16'lı sayı sistemi demektir.
Günlük hayatta ise decimal(10'lu sayı sistemi) kullanırız.Tüm sayı sistemleri birbirlerine dönüştürülebilir,dönüştürme yapılırken 10'lu sayı sistemi üzerinden dönüşütürülmesi daha mantıklıdır genellikle.
Şimdi kullanılan bu 3 sayı sistemini tanıyalım.

i)Decimal(10'lu) Sayı Sistemi
Günlük hayatta kullanılan sistemdir.Bildiğimiz gibi 10 tane rakam vardır.Bunlar 0,1,2,3,4,5,6,7,8,9'dur.Bu rakam sisteminin tabanı 10'dur.
Örnek olarak 365 sayısını 10 tabanında çözümleyelim;
365=3x102 + 6x101 + 5x100
Yani basamaklar 10'un katları şeklinde artar veya azalır.


ii)Binary(2'li) Sayı Sistemi
Programlamada kullanılır.Rakamları sadece 1 ve 0'dır.Bu yüzden 10'luk sistemdeki küçük sayılar bile 2'li sistemde uzun bir kodla ifade edilir.İkili sistemde basamaklar 2'nin katları şeklinde artar,azalır.


XLNkR5.png


2 tabanındaki sayılar 10'luk tabana çevrilirken,her bir basamaktaki sayı,basamağın sayısıyla çarpılır,elemanlar toplanır.Böylece sayının 10'luk sistemdeki değeri bulunur.
Örneğin;2 tabanındaki 10111 sayısı için,
10111=1x20 + 1x21 + 1x22 + 1x24 'tür.
Yani iki tabanında 10111 sayısının karşılığı,10 tabanında 23'tür.

10 tabanındaki sayılar 2'lik tabana çevrilirken sayıyı bölecek en büyük 2'nin katı belirlenir.Gelen bölüm o basamağın sayısıdır.Kalan ise bir önceki kata bölünür,yine aynı işlem devam eder.21 basamağına gelene kadar böyle devam eder
Örneğin;10 basamağındaki 72 sayısı için,
72=1x26 + 1x23'tür.
Yani 10 tabanında 72'nin karşılığı,2'lik sistemde 100100'dir.


iii)Hexadecimal(16'lı) Sayı Sistemi

Yine web şifrelemesinde kullanılan bir sistemdir.Toplam 16 rakamdan oluşur.Bunlar 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)'dir.
16'lık sistemin diğer sistemlere dönüşmesi yine aynı mantıkla olduğu için yazmaya gerek yok diye düşünüyorum.
16'lık sistem progmramcılıkta daha çok "string to hex" durumlarında rastlanır.Örneğin adres çubuğuna,siteye ait bir tablo adını yazarsanız,sql hatası almanız muhtemeldir.Onun yerine bu işlem o string değerinin hex'e çevrilmiş haliyle yapılır.
Örneğin admin tablosunu aratmak için admin'in hex kodunu kullanırız.
Harf harf çeviri yapmak durumundayız.
a=61 d=64 m=6d i=69 e=6e 'dir.Yani admin'nin hex karşılığı 61646d696e'dir
Her harfin veya sembolün bir hex değeri vardır.Liste biraz uzun olduğu için tek tek buraya yazmak yerine alıntı bir resim paylaşacağım.



m1p6QP.png



Yardımcı olması dileğiyle,iyi çalışmalar
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.