Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: Prof.EleCTroN - 23 Ocak 2007, 00:25:39

Başlık: Kayan Noktalı Sayılarda Çarpma (Bilmece)
Gönderen: Prof.EleCTroN - 23 Ocak 2007, 00:25:39
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?
Başlık: Kayan Noktalı Sayılarda Çarpma (Bilmece)
Gönderen: z - 23 Ocak 2007, 01:39:55
Alıntıburadan 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
Başlık: Kayan Noktalı Sayılarda Çarpma (Bilmece)
Gönderen: Prof.EleCTroN - 23 Ocak 2007, 11:27:50
Alıntı yapılan: "bunalmis"
Alıntıburadan 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.
Başlık: Kayan Noktalı Sayılarda Çarpma (Bilmece)
Gönderen: z - 23 Ocak 2007, 13:43:23
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.
Başlık: Kayan Noktalı Sayılarda Çarpma (Bilmece)
Gönderen: Prof.EleCTroN - 01 Şubat 2007, 00:50:27
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: