C64 vs C128

2 replies · 13,610 views

C64 vs C128
Floating point hesabındaki farklardan dolayı Commodore 64’de INT(.1+.9) işlemi 0 değeri alırken Commodore 128’de 1 değeri alıyormuş. Dolayısıyla;
C=64+64*INT(.1+.9)
Dediğimizde C64’de C’nin değeri 64, C128’de C’nin değeri 128 oluyor. İşe bak 🙂
C64 vs C128
$imdi bir de matematikte tam deger fonksiyonu var, icindeki sayInIn ondaLIkLarInI atIp sayInIn tam kIsmInI cIkaran, ( [|4.5|] = 4 ; [|4.9|] = 4 gibi ) ve [| x |] $eklinde gosterilen. int fonksiyonuna denk geliyor olmasI lazim basic'de. ote yandan kesirli sayILarda periyot kurallarIna gore 0.999... (bundan sonra kIsa olsun diye d dicem) $eklindeki bir sayI 1 e e$itken (periyot seyreden kIsIm kac hanede kendisini tekrar ediyorsa tekrar eden kIsIm kesirin payIna tekrar eden basamaklar kadar kIsIm da paydaya yazILIyor, mesela .444... gibi bi sayI icin 4/9) bu durumda d nin 1 e e$it olmasI zaten 9/9=1 den de cIkIyor ancak i$ler bu tam deger fonk icin degi$iyor tamamen , yani [|1|]=1 iken [|d|] = 0 oluyor(mu$) bunun ispatlanmasI da limit aLInarak yapiliyormu$ hatta ama sormadIm hocaya ayrintisini bilmiyorum, ama sanIrIm lim (x |-> 0) [|a-x|] = (A-1) olmasIndan kaynaklaniyor olabilir ,
benim asLInda bunu geyik ba$liginda yazmam gerekirdi ama akLIma geldi $imdi burada
C64 vs C128
canım açıklamak için kendini çok yorma. nette onlarca tutorial var floating point, fixed point olayını anlatan, ben sadece 64'le 128'in aritmetik farklılığına bir örnek verdim sadece.
P.S: Sorun C64'de 0.9'un işleme 0.89999999999 olarak girmesinden kaynaklanıyor.