Commodore sayı 72, sayfa 10

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 10

sayıda makine dilinin daha kolay kullanma yollarını araştırıyorduk hatırlarsanız.

Ama daha işin başından zorlu bir kayaya çarptık. Makine dilini kullanarak ondalıklı sayılarla işlemleri nasıl yapacağımız sorununu araştırmak istiyorduk. Ama bu işe girişmeden önce sahip olmanızı istediğim temel birazcık uzun sürecek gibi. En iyisi lafı fazla dolandırmadan temeli inşa etmeye devam edelim, yoksa bu sayı da harcanacak gibi... Hatırlarsanız geçen sayıda ikilik düzende ondalık kesirli sayıları nasıl ifade edebileceğinizi anlatmıştım. Son olarak da birkaç örnek çözmüştük. Bu sayıda da kaldığımız yerden devam edeceğiz. İlk olarak düzendeki kesirli sayıların ondalık düzendeki karşılığını bulmayı öğreneceğiz, daha sonra bu sayıların bilgisayarda kullanılmasıyla ilgili birkaç örnekle uğraşacağız. Kolay gelsin! Geçen sayıdaki bilgilerimizle sayıları ondalık düzenlerden ikilik düzene çevirebiliyorduk. Şimdi de tersini yapmaya çalışalım. Hatta anlamak için örnek üzerinde çalışalım. Örneğimiz geçen sayıda çözdüğümüz -5.5 olsun:

M3 M4

83 BO 00 0000 sonücünü geçen sayıda bulmuştuk. Geri dönmek için uzun uzun uğraşmak yerine basit bir formül oluşturalım isterseniz: SAYI — (ML AND 128)*2.(ÜS-129)* AND ( işareti üs alma işlemini gösteriyor.) Yukarıdaki formüle dikkatle baktığınızda işaretin doğrudan doğruya Mantisa'nın ilk baytının (M1) son bitinden okunduğunu

Vedat Hallaç

0. -0.0078125 -0.0009765625

-0.00048828125

-0.00009765625 - -0.00006103515625

0.00003662109275

İkinin üssü: -2

-6 görebilirsiniz. Üssü hesaplamak için üs baytının 129 eksiğini almamıza da dikkatinizi çekerim. Bir de, her bitin etkisini ayrı ayrı hesaplamak yerine baytların değerini olduğu gibi 256'ya (ve katlarına) bölerek bit ağırlığı hesaplaması yapılıyor. İsterseniz formülümüzü yukarıdaki sayı üzerinde deneyelim: X = -SGN(176 AND 128) * ... Bu işlem sonucunda orijinal -5.5 sayısını elde ederiz. İsterseniz bu konuyu pekiştirmek açısından siz de bazı sayıları ondalık düzenden ikilik düzene çevirin, sonra da aynı işlemi tersine yapın. Bilirsiniz, pratik olmadığı zaman bu teorik bilgiler uçup gider... Hayat o kadar da kolay değil... Şimdiye kadar çözdüğümüz tüm örneklerde ikilik düzendeki sonuçlar tam olarak bitlerine sığdılar. Oysa gerçek hayatta her şey bu kadar basit değildir. İsterseniz bir de 0.4'ü ikilik düzene çevirmeye çalışalım. Geçen sayıda yaptığımız gibi her seferinde ikinin en yüksek üssünü sayımızdan çıkararak ilerleyeceğiz: Bu işlemleri sonsuza kadar sürdürebiliriz.

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