25 i 25 ile çarpalım. (25x25=625)
http://babbage.cs.qc.edu/IEEE-754/Decimal.html
buradan 25 in kayan noktalı değeri noktalı olan 2^4x1 .10010000000000000000000 bulduk.
üstleri toplayalım 4+4=8
mantisleri çarpalım 110010000000000000000000x110010000000000000000000=100111000100000000000000000000000000000000000000 (windowsun hesap makinası ile çarpılıyor tek tek girmeyin copy paste kabul ediyor)
noktadan sonra 23 biti seçelim 00111000100000000000000
ve sonucu yazalım 2^8x1.00111000100000000000000
*işaret biti 0 dır.
*üssü 127 ile toplayalım. 10000111
*noktadan sonraki 23 bit seçelim 00111000100000000000000
ve elde ettiklerimizi soldan sağa doğru yerine koyalım
01000011100111000100000000000000=439C4000 hex sayısı
şimdi bu sonucu http://babbage.cs.qc.edu/IEEE-754/32bit.html adresinde yerine koyalım.
(Sonuç 625 desimal olması gerekiyor.)
Evet yerine koyduk ama 312.5 desimal çıktı.
Yukarıda nerede yanlış yaptıkta istediğimiz sayının yarısını bulduk?
Alıntı Yapburadan 25 in kayan noktalı değeri noktalı olan 2^4x
1.10010000000000000000000 bulduk.
Hata burada.
25=11001
Float yazmak için
M=11001 E=4 buradan IEEE-754 e gecelim
S=0
E=131=10000011
M=1001
bırlestırırsek 0100000111001000....=41C80000
Bunu verdiğiniz siteye koyarsanız sonuc 25 cıkar.
Yada 625 den gidersek,
25*25=625 =(10 0111 0001)
M=1001110001 E=9
IEEE-754 e gecelim
E=136 S=0
010001000001110001=441C4000 = 625
Alıntı yapılan: "bunalmis"Alıntı Yapburadan 25 in kayan noktalı değeri noktalı olan 2^4x
1.10010000000000000000000 bulduk.
Hata burada.
25=11001
2^4x1.1001=11001 ediyor (2^4 ile çarptık yani sola doğru 4 kere kaydırdık). Dikkat edilirse mantissa da bir sorun yok, mantissa değeri doğru sorun üste. 625 sayısını siteye koyduğumuzda doğru sonucu veriyor lakin kayan noktalı sayılarda 25 ile 25 i çarptığımızda üssün 1 eksik değerini elde ediyoruz.
625 de üs 9
25 de 4
25x25 de üsleri toplayıp mantissaları çarparız. Yani 4+4=8 fakat 9 olması gerekiyor. Sanırım birşeyler gözden kaçıyor mantissa sonucu ile ilgili olarak üste işlem yapmamız gerekiyor.
Mantis hesabın doğru ama yanlış, adamlar 127 ofseti niye vermişler acaba?
Sana ipucu, bir bitin değerinin 1 olduğunu biliyorsan bu biti değişkene neden yazasın. Yazma exp i değiştir.
Bu da sana bir bilmece olsun.
Benim hesap doğru sonucu verdiğine göre yanlışımı bulsan da olur.
Hatam: Mantis sonucunda elde oluşuyor, elde bit sayısını hesaba katmamışım. Taşan bit sayısı kadar üssü arttırmak gerekiyor. Şimdi 8086 kodlarını düzeltip yeniden denemem gerekiyor.
Çözülecek bilmece kalmadı ama :cry: