Ondalık binary sayısının Octal/Desimal/Hexadesimale çevrilmesi

101 sayısı için konuşalım. Decimale çevirirken aşağıdaki gibi olacak.

Birler basamağı: 1 * 2^0.
Onlar basamağı: 0 * 2^1.
Yüzler basamağı: 1 * 2^2.

Sonuçları toplarsak 1 + 0 + 4 = 5.

Tabii burada birler veya onlar kullanmak doğru değil. 2 kullanmamızın sebebi de 2'lik tabanda olması. Diğerleri için de aynısını yapabilirsin. Yani diğerlerini decimale çevirirken. Tüm varyasyonları internette aratarak bulabilirsin.
 
Son düzenleme:
binary : ikilik,
octal : sekizlik,
decimal : ondalık,
hexadecimal: onaltılık.

Günlük kullandığımız sayılar ondalık sayı, 10'a kadar olan sayıları kullanabiliriz. Basamak 10 olduğunda elde 1 olur gibi düşünebilirsin. Binary sayılarda bu 2. Yani sadece 0 ve 1'i kullanabilirsin.

Hexadecimal'larda durum biraz daha farklı. Orada 16'ya kadar olan sayıları kullanabiliyorsun, bir basamak 15 olabilir. Bu bir sorun aslında çünkü 145156 gibi bir sayının basamaklarını ayırmak güç. Buna da çözüm olarak iki haneleri olanları harflere çevirmişler.
10:A, 11:B, 12:C, 13 = D, 14:E, 15:F gibi.

Binary to Hexadecimal'ı biraz anlatayım.

11101010111110 gibi bir şey olsun. Önce bunu sağdan başlayarak 4'e ayır.(2^4)

00-11 1010 1011 0110
- 3------A-----B-----5

Daha sonra 4'lü parçaların hangi sayıya denk geldiğini hexadecimal tabanda yaz.

11101010111110 binary sayısının karşılığı 3AB5 olmuş oluyor. Sayıyı sağdan 3'e ayırıp yazarsan da octal'e çevirmiş olursun.
 
Son düzenleme:
Octal için sağdan başlayarak 3'lü olarak gruplandırmanız gerekiyor.
Hexadecimal için ise 4'li olarak.

Octal karşılığı: 101_111 olarak gruplanır. 101 = 5 ve 111 = 7 yani 57'dir.
Hexadecimal karşılığı 10_1111 olarak gruplanır. 0010 = 2 ve 1111 = F yani 2F'tir. (10 = 0010 olarak kabul edilir.)
Decimalde ise basamak değerleri ile çarpılır. Üstteki arkadaş zaten güzelce açıklamış.
Decimalde ise bu şekilde ayrılır. 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 47
 
binary : ikilik,
octal : sekizlik,
decimal : ondalık,
hexadecimal: onaltılık.

Günlük kullandığımız sayılar ondalık sayı, 10'a kadar olan sayıları kullanabiliriz. Basamak 10 olduğunda elde 1 olur gibi düşünebilirsin. Binary sayılarda bu 2. Yani sadece 0 ve 1'i kullanabilirsin.

Hexadecimal'larda durum biraz daha farklı. Orada 16'ya kadar olan sayıları kullanabiliyorsun, bir basamak 15 olabilir. Bu bir sorun aslında çünkü 145156 gibi bir sayının basamaklarını ayırmak güç. Buna da çözüm olarak iki haneleri olanları harflere çevirmişler.
10:A, 11:B, 12:C, 13 = D, 14:E, 15:F gibi.

Binary to Hexadecimal'ı biraz anlatayım.

11101010111110 gibi bir şey olsun. Önce bunu sağdan başlayarak 4'e ayır.(2^4)

00-11 1010 1011 0110
- 3------A-----B-----5

Daha sonra 4'lü parçaların hangi sayıya denk geldiğini hexadecimal tabanda yaz.

11101010111110 binary sayısının karşılığı 3AB5 olmuş oluyor. Sayıyı sağdan 3'e ayırıp yazarsan da octal'e çevirmiş olursun.
Octal için sağdan başlayarak 3'lü olarak gruplandırmanız gerekiyor.
Hexadecimal için ise 4'li olarak.

Octal karşılığı: 101_111 olarak gruplanır. 101 = 5 ve 111 = 7 yani 57'dir.
Hexadecimal karşılığı 10_1111 olarak gruplanır. 0010 = 2 ve 1111 = F yani 2F'tir. (10 = 0010 olarak kabul edilir.)
Decimalde ise basamak değerleri ile çarpılır. Üstteki arkadaş zaten güzelce açıklamış.
Decimalde ise bu şekilde ayrılır. 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 47
Anlatımınız için de çok teşekkür ederim ama başlıkta dediğim gibi bu Ondalık binary sayısı. Ondalık olması 1*2^-1 gibi farklar doğurmaz mı? Ondalık olunca da yine aynı şekilde gruplandırabiliyor muyuz?
 
Anlatımınız için de çok teşekkür ederim ama başlıkta dediğim gibi bu Ondalık binary sayısı. Ondalık olması 1*2^-1 gibi farklar doğurmaz mı? Ondalık olunca da yine aynı şekilde gruplandırabiliyor muyuz?
Ondalık binary sayısı ne demek? Kavram karmaşası yaşıyorsun sanırım. İkisi bambaşka şeyler.

Ondalık sayı 10'luk tabanda olur yani "0, 1, 2, 3, 4, 5, 6, 7, 8, 9" sayıları.

Binary sayı 2'lik tabanda olur yani "0, 1" sayıları.

Ek olarak ondalık sayı ile decimal sayılar aynı şeydir.
 
Floating Point sayıların Binary karşılığı için özel algoritmalar kullanılıyor.
IEEE 754 diye aratırsanız örnek dönüşümleri görebilirsiniz.

Zamanında başka birisi için örnek bir dönüşüm yapmıştım.

Eğer özel bir mantığa göre bir dönüşüm yapılmamışsa; 101.111 sayısı 5 + 1/2 + 1/4 + 1/8 olarak okunur. O da 5.875'e eşittir. Ama hiç bir bilgisayar sistemi floating point sayıları bu şekilde saklamaz.
 
Son düzenleme:
Floating Point sayıların Binary karşılığı için özel algoritmalar kullanılıyor.
IEEE 754 diye aratırsanız örnek dönüşümleri görebilirsiniz.

Zamanında başka birisi için örnek bir dönüşüm yapmıştım.

Eğer özel bir mantığa göre bir dönüşüm yapılmamışsa; 101.111 sayısı 5 + 1/2 + 1/4 + 1/8 olarak okunur. O da 5.875'e eşittir. Ama hiç bir bilgisayar sistemi floating point sayıları bu şekilde saklamaz.
Ondalık binary sayısı ne demek? Kavram karmaşası yaşıyorsun sanırım. İkisi bambaşka şeyler.

Ondalık sayı 10'luk tabanda olur yani "0, 1, 2, 3, 4, 5, 6, 7, 8, 9" sayıları.

Binary sayı 2'lik tabanda olur yani "0, 1" sayıları.

Ek olarak ondalık sayı ile decimal sayılar aynı şeydir.
Evet, muhtemelen kavram karmaşası yaşıyorum. Bana verilen çalışmada
a) 11 0111 0111 1101
b) 101,111
olarak iki Binary sayısının Octal,Decimal,Hexadecimal'e çevrilmesi istediği yazmış. A kısmında sorun yaşamadım ama B'de ne yapabileceğimi bilemedim. Sadece Decimal olarak değerini bulabildim. Verilen çalışmada mı bir hata var, yoksa çalışmanın cevabı bu çevrimin yapılamayacağı mı?

IEEE 754 formatını biliyorum. Çalışmanın devamında bununla ilgili sorular da vardı ve onları hallettim ama ilk sorudaki bu virgüllü kısım kafamı oldukça karıştırdı.
 
Evet, muhtemelen kavram karmaşası yaşıyorum. Bana verilen çalışmada
a) 11 0111 0111 1101
b) 101,111
olarak iki Binary sayısının Octal,Decimal,Hexadecimal'e çevrilmesi istediği yazmış. A kısmında sorun yaşamadım ama B'de ne yapabileceğimi bilemedim. Sadece Decimal olarak değerini bulabildim. Verilen çalışmada mı bir hata var, yoksa çalışmanın cevabı bu çevrimin yapılamayacağı mı?

IEEE 754 formatını biliyorum. Çalışmanın devamında bununla ilgili sorular da vardı ve onları hallettim ama ilk sorudaki bu virgüllü kısım kafamı oldukça karıştırdı.
Virgülle ayrılmış olması bir şey ifade ediyor mu bilmiyorum ama 3 yıllık bilgisayar mühendisliği derslerinde böyle bir şeyi hiç görmedim. 4. sınıfın başındayım hala böyle bir şey yok. Belki de iki sayı için yapmanı istiyordur.
 

Yeni konular

Geri
Yukarı