Commodore sayı 71, sayfa 16

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 16

KAPAK

Bu ayki bölüme son vermeden önce son bir konuya daha değinmek istiyorum: Negatif Sayıların Gösterilmesi: Kesinliği düşürmeden negatif sayıları göstermek için fazladan bir bite ihtiyacımız var. Her ne kadar negatif üsleri tanımlamak için bir bit ayırdıysak da, bu biti aynı zamanda sayının da negatif olup olmadığını anlamak için kullanamayız. Burada hem bellekten kâr etmek, hem de kesinliği düşürmemek için bir numara yapacağız: Konunun başlarında, normalize edilmiş sayıların mantisalarının 1 ile kullanılan sayı düzeni değeri arasında bir değer alabileceğini belirtmiştim. Yani ondalık düzendeysek, 1 <= Mantisa < 10 formülü mutlaka geçerli olacaktı. Oysa biz hep ikilik düzende çalıştığımız için mantisa 1'e eşit veya büyük ve ikiden daha küçük olacaktır. Kısaca mantisa mutlaka

1.XXX olarak ifade edilecektir. İlk bit her zaman bir olacağına göre o biti bellekte tutmayız ve bu bit yerine sayının negatif olup olmadığını belirten bir bit kullanırız. İşlemleri ya-

parken bir olan bu biti unutmazsak hiçbir problemle karşılaşmayız. İsterseniz bir iki de örnekle bu olayı iyice açalım:

1) Mantisa ve üs olarak ifade edelim:

mantisa = 0000 0000 0000 0000 0000 0000 üs = 04129 = 1000 0001

Üs, genel olarak mantisanın önüne yazılır. Bilgisayarda da bu şekilde durduğu için ben de bu şekilde kullanacağım. Ayrıca demin de söylediğim gibi noktanın solunda bulunan 1 yazılmaz ve bunun yerine işaret biti yazılır. Sayı pozitif olduğu için işaret biti sıfırdır. O zaman sayıyı:

1000 00010000 0000 0000 00000000 0000 0000 0000

olarak yazabiliriz. Daha kolay okunabilmesi için ondalık düzene çevirirsek:

81 00 00 00 00

2) Örneklerimizi elden geldiğince kolay tutmaya çalışıyorum. Bu sayede daha kolay anlayabilirsiniz. İsterseniz bir de 10 sayısını bu şekilde ifade edelim:

z 81412 - 21423 — 40x224 1x21 4 0x220 normalize edersek: — 1.01 (ikilik düzende)

Bu sayıyı da: 16 mantisa = 1.010 0000 0000 ... üs = olarak ayırabiliriz. Öyleyse sayıyı

1000 0100 0010 0000 0000 0000 0000 0000 0000 0000 olarak yazabiliriz. Daha da iyisi: 84 20 00 00 00 olarak yazmak. 3) -5.5'i de çevirelim mi?

552 2 - (224204201)

-(1x2240x2141x20 normalize edersek: z -1.011x22 (ikilik düzende). Burada mantisa - 1.001 0000 ... üsz

Öyleyse sayıyı: 100 0011 1011 0000 0000 0000 0000 0000 0000 0000 ya da kısaca: 83 B0 00 00 00 olarak yazabiliriz. Gördüğünüz gibi pek de zor değil noktalı sayılarla uğraşmak. Daha önce de belirttiğim gibi işin en zor kısmını bilgisayara yükleyeceğimiz için burada görüldüğü kadar karmaşık işlerle uğraşmayacağız. İsterseniz burada keselim ve gelecek ay kaldığımız yerden devam edelim.

Klavyeyle gezinmek için ← ve → tuşları.