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.
"İ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 >
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.