Bu sayfadaki yazılar
Sayfanın metni
Sayfa 60
Bu baytın en soldaki bitini ondalık karşılığı 192 olan 11000000 olacak şekilde 1 ile değiştirin. Şimdi sağdan sola doğru gösterilen değerleri kullanarak mantis'i hesaplayalım.
mantis = (((1/256 + 0)/256 + 0)/256 + 192)/256 veya mantis = 1/256^4 + 192/256 = 1/4294967296 + 0.750 000 000 233
Sonra bu mantis'i 3. kuvvetinde olan 2 ile çarpalım.
sonuç = 0.750000000233 * 23 = 6.00000000186 = 6 (9 önemli basamağa kadar yuvarlanmış halde). Diğer sayılarla da denemeler yaparak BASIC dilinin iç matematik yapısını daha iyi ve daha etraflıca anlayacaksınız. Artık bu değerleri programda deneyerek neden 1.70141183E38'in mümkün en büyük ve 2.93873588E-39'un en küçük değer olduğunu görebilirsiniz. Bir daha sefere birisi size bilgisayarların asla hata yapmadığını söyleyecek olursa, ona ilk örneğimizi gösterin ve neden bilgisayarın 36'nın karekökünün 6'ya eşit olmadığını düşündüğünü anlatın. Eğer onların sınırlamalarını bilmez ve çalışma prensiplerini anlamazsak bilgisayarlar şüphesiz hatalı duruma düşeceklerdir.
BİR
SAYIYI BİLGİSAYAR İÇİNDE SAKLANDIĞI ŞEKLE ÇEVİRME
10.234 sayısını alalım. Bu değerin floating-point karşılığını şu şekilde hesaplayabilirsiniz: 1. Bölüm 0.1 ile 1 arasında olana kadar değeri 2'ye bölün:
10.234/2 = 5.117 5.117/2 = 2.5585 2.5585/2 = 1.27925 1.27925/2 = 0.639625
Bu, 4 bölme işlemi aldığından üs değerimiz 4 olacaktır. Üssü 128 fazlası düzenine çevirin: 4 + 128 = 132 2. Son bölümü 256 ile çarpın:
0.639625 * 256 = 163.744
Mantis'in EÖB'ı olarak bu sayının tamsayı kısmını (163) alın. Ancak 128 çıkartın (çünkü 128'den büyük ve orijinal sayımız olan 10.234 pozitif)
Mantis EÖB = 163 - 128 = 35
3. Önceki sonucun kesirli kısmını alın (0.744) ve 256 ile çarpın:
0.744 * 256 = 190.464
Mantis'in sonraki EÖB'ı bu sonucun tamsayı kısmıdır.
Mantis bayt 2 = 190
4. 3. adımı mantis'in son iki değerini bulmak için iki kez daha tekrar edin:
0.464 * 256 = 118.784 Mantis bayt 3 = 118 0.784 * 256 = 200.704
Bu son değeri en yakın tam sayı olan 201 ile yuvarlanmış hale getirerek Mantis'in çömez bitini elde edin.
Mantis ÇB = 201
5. 10.234 sayısı bilgisayarda aşağıdaki gibi saklanacaktır:
132 35 190 118 201
Bu sonucun sağlamasını yazının sonundaki programla yapabilirsiniz.
PROGRAM ADI * FP CEVİRİCİ 00300 REM SAKLANAN FLOATIİNG-POİNT'E <1863> 80010 PRİNT "<CLROFLOATİNG-POİNT CEVİRİCİ 00310 PRİNT 3PRİNT DEGİSTİRMEK İCİN sı: <aa3> XI CİKMAK ICİN G TUSLARINA BASIN)" <a23> 00015 PRİNT — — 00320 PRİNT * SAKLANAN 5 DEĞERİ GİRİN KO İLK DEGİSKEN OLM 255) 1 > ALI <820> — 00330 INPUT “İLK 00030 >" <216> — 00340 IF THEN PRİNT ©0040 DEF 218 <193> FAZI NOT <813> — 00350 IF THEN END <a1s> 00070 İF THEN <163> — 00360 INPUT “İKİNCİ VezVALCX ©0080 THEN REM DEĞİ <188> SKEN BASLANGIC <875> — 00370 INPUT "UCUNCU 00090 DEGİSKEN BASLANGI 24) <esa> cı <157> — 00380 INPUT "DORDUNCU 00100 <e36> SV*E:REM KO'IN SAKLANDIĞI ALAN — 00388 INPUT "BESİNCİ 90110 IF NOT THEN BANKI caza> REM SA ©0400 POKE Sİ,Vİ:POKE S3,V31PO KLANAN DEĞERLERE 2: KE 84,VA:POKE S5,VS 60210 PRİNT "(MOD DEGĞİSTİRMEK İCİN XI CİK 60410 GOSUB 1616 <144> MAK İCİN G TUSLARINA BASIN)" — 31a PRİNT "FLOATİNG-POİNT DEGERİNİ GİRİ 01000 REM HESAPLAMA <ess> Noam <875> 81010 PRİNT Ve; V3r Var VS <aaı> INPUT X&TİF THEN 260 <215> REM -- US, MANTIS, İSARET - <aa7> ©0230 IF THEN END <017> 01030 <136> ©0240 IF THEN PRİNT 01048 316 OR Va)y/ase <187) THEN SN<-1 <as3> 00260 (S2) (S3 01060 PRİNT *<RVSOFF (S4) (S5) *<RVSOFF> #0270 GOSUB 1018 218 <834> — g1aza RETURN <cite>
Klavyeyle gezinmek için ← ve → tuşları.