Şimdi Ara

Kayan noktalı sayı ve İkiye Tümleyen Basit 2 Soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
880
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar alttan aldığım dersin quizinde çıkan 2 soru yanlış çıktı,doğru cevabı bulamadım.
    1-İkinin tümleyeni gösteriminde 4-bitlik desenle temsil edilen 0100 ve 0110 sayılarının toplamının ondalık sistemdeki karşılığı kaçtır?
    2-1-byte'lık (8-bitlik) kayan nokta gösteriminde (floating-point notation) 2.625 sayısının karşılığı nedir?

    2.soruya 0 100 0101 dedim ancak yanlış gösterdi,1-3-4 olarak düşündüm SEM kısmını
    Teşekkürler.



  • İlk soru 10 olmuyor mu? Temsil edilen sayılar 4 ve 6 olarak düşündüm ama.
  • 1. -6
    2. 2625 8 bite sığarmı ki?
  • İlk soru 10 değil hocam -6 yı denerim ikide ise sığıyor sanırım soruda hata yoktu
  • EmuDev E kullanıcısına yanıt
    Hocam -6 doğru çıktı çözümü nasıl acaba ?
  • quote:

    Orijinalden alıntı: Basketball is my life

    Hocam -6 doğru çıktı çözümü nasıl acaba ?
    "İkinin tümleyeni gösteriminde" diyor, yani sayı 4 bit işaretli (signed) sayıymış. İşaretsiz olsaydı 4 bit 0 - 15 arasındaki sayıları tutabilirdi ancak işaretli olunca -8 - +7 aralığını kapsar sadece. İşaretli sayılarda en soldaki (msb) biti sayının işareti gösterir.

    0100 -> İşaret biti 0, pozitif
    0110 -> Bu da pozitif
    ---------
    1010 -> İşaret biti 0'dan 1'e döndü, yani OVERFLOW oldu. Bunun anlamı sonuç 4 bit ile ifade edilemez demek. Normalde sonuç 10 olması gerekirken bu sayı işaretli 4 bite sığmadığından -6 hatalı sonucunu alırız.
  • bu işaretli sayılarda en sol bit negatif diğerleri pozitifdir yani şöyle diyelim

    1001

    en sol baş -8
    en sağ baş +1
    sonuç -> 1-8 = 7 eder.


    kesirli sayılara gelince, ben hiç 8 bit kesirli sayı görmedim ama mini float diye bir şey varmış. Biçimi aşağıdaki şekilde

    0 0000 000

    burada ilk bit sign, 0 yazarsan sayı pozitif, 1 yazarsan negatif. ister kesirli ister işaretli tam sayı olsun fark etmez, en sol biti 1 olan bütün sayılar negatiftir.
    diğer 4 bit exponent yani ikinin üssü
    sondaki 3 bit mantissa yani küsurattan sonrası

    bilgisayarda kesirli sayılar bilimsel formatta yazılır, şu avagadro sayısı vardıya 6.02 x 10^23 şeklinde yazılan, hah işte bilgisayarda da bu şekildeler burada gördüğün 23 ü üs kısmına 6.02 yi ise mantisaya yazacaksın. Aslında sadece virgülden sonrasını çünkü, virgülden önceki rakam gizli olarak mevcut bir 1 sayısı

    peki nasıl yazacaz. Önce sayımızı alalım 2.625 bu sayı ikilik sistemde 10.101 ama biz ne dedik bu sayı bilimsel formatta olacak yani virgülün solunda sadece tek sayı olabilir. Peki ozaman bu sayıyı şu şekilde yazalım

    2^1 x 1.0101

    işte bilimsel format! şimdi bunu kesirli sayı yapalım.

    işaretimiz nedir? pozitif o zaman ilk bit sıfır

    0

    ikinin üsssü kaç? e o da bir o zaman takip eden 4 bitin değeri bir olmalı(kendi başına hesaplandığında)
    0 0001

    bu kesirli sayılarda 1 den daha küçük ifadeleri elde edebilmek için ikinin negatif üslerini kullanmalısınız, bu yüzden bilgisayar belirli bir miktarı üs kısmından çıkaracaktır, 32 bit kesirli sayılar için bu 127, 8 bit için ise 2 imiş(vallahi wikipedia nın yalancısıyım). Bu yüzden exponent kısmına iki ekleyelim.

    0 0011

    peki virgülden sonra ne görüyoruz? 0101 görüyoruz, e onu da ekleyelim

    0 0011 010 1

    işte 8 bit kesirli sayı! derkeeen... DURUN! sondan 1 bit fazla! maalesef ki onu kırpıp atacağız, 8 bitlik kesirli sayılarda 2 ile 4 arasındaki sayıların üssü 1 olacağından

    2^1 x 2^-3 = 2^-2 = 0.25 olduğundan

    2 ile dört arasındaki epsilon 0.25 tir ve iş bu gerekçe ile bundan daha küçük sayılar ifade edilemez.

    0 0011 010

    ise bize 2.5 sayısını verir. umarım yanlışım yoktur. hadi kolay gelsin.



    < Bu mesaj bu kişi tarafından değiştirildi eserb -- 11 Kasım 2019; 19:30:12 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.