Bu sayfadaki yazılar
Sayfanın metni
Sayfa 63
Bu iki koşul, bir çizim üzerinde, aşağıdaki gibi gösterilebilir: Olayı özetlemeye A anında başlıyoruz. A ile B arasında (diyelim ki bir saniye süresince) sinyal ne demek? Değişik sayılama sistemleri içinde, mantığımıza en uygun olanı konumsal sistemdir. Bu sistemde her rakamın, bulunduğu konuma
Cİ lin düzeyi tabanda (yani 0 değerinde) kalır (0 düzeyi, a harfiyle de belirtilebilir). B ve C arasında (çok kısa bir sürede) 0 düzeyinden 1 düzeyine geçilir, 1 düzeyi genelde y harfiyle gösterilir. y düzeyi C-D boyunca sürer. D- E aralığında (yine çok kısa bir sürede) y düzeyinden a düzeyine geçilir. 0 düzeyi durumu, sonsuza sürebilir. Bu çevrim:
"DARBENİN SÜRESİ"
DARBENİN GENİŞLİĞİ
Lİ
- > ZAMAN
— a düzeyi —y düzeyi — a düzeyi darbe adını alır.
İşte bilgisayarda bütün sayıların 1'er ve 0'lar dizisi halinde, daha da doğrusu iki ve yalnızca iki simgeyle gösterilme gereği buradan kaynaklanmaktadır. Çünkü bilgisayar yalnızca iki durum tanıyabilir. Öyle bir simgesel sisteme ihtiyacımız var ki, sistemin her simgesine bağlı olarak bilgisayarı oluşturan bileşenler (devreler) alabilecekleri iki durumdan birini alsın. Tabi aynı zamanda bu sistemle aritmetik bir mantık işlemleri de yapabilmemiz gerekiyor. Sözkonusu sistemin adının “iki tabanlı sayı sistemi” (binary code) olduğunu duymuşsunuzdur. Peki ne demek bu "iki tabanlı sayı sistemi?”
Sayılama Tabanları
İki tabanlı sayı sistemi, adından da anlaşılabileceği gibi her şeyden önce bir sayılama sistemidir ve tabanı 2 olan bir sayılama sistemidir. (Bu laflar ilk bakışta o kadar totolojik olmayabilir. Biraz sabredin.) Bir sayılama sistemi ile ne kastediyoruz? Sayılama sistemlerinin tabanlarına bağlı bir ağırlığı ya da değeri vardır. 5 sayısını yazarken 5 birim kastediyoruz. Eğer 5 simgesinin konumunu değiştirecek olursak, 5 tane onluk (50), 5 tane yüzlük (500) vb. kastedmiş oluruz. Öyleyse 5 simgesi, bulunduğu konuma göre bir değer almaktadır. Konum ile değer arasındaki bu bağlantıyı bir tabloda görelim:
Yüzler Onlar — Birler Ağırlık 100 10 1 Üs 10^2 10^1 10^0 Konum değeri — 500 50 5 Değer 500 50 5
Konumunun her değişmesinde, sayı 10 ile çarpılır. 10 değeri sayılama sistemimizin tabanını teşkil etmektedir. Bu yüzden de 10 tabanlı konumsal sistem adını alır (başka bir deyişle, Arap sayılama sistemi).
Romen sayılaması, konumsal olmayan bir sistem örneğidir. Bu sistemde, 5 değeri V simgesiyle, 50 değeri de L simgesiyle gösterilir. 5'ten 50'ye geçmek için, 5(V) simgesinin konumunu değiştirmek yetmemekte, bir (L) işin içine sokulması gerekmektedir. Yorumlanması pratik olmayan ve hesaplara da yatkın olmayan bu sayılama sistemi bırakılmıştır: Yerine, evrensel olarak konumsal sistem kabul edilmiştir. En yaygın konumsal sistem 10 tabanlı sistemdir; bu sistemde 10 simge vardır ve taban da 10'dur. Fakat bilgisayarlarda 10 değişik simge kullanılamaz. Daha önce de söylediğimiz gibi, makine yalnızca iki durumu tanıyabilmektedir: VAR (yüksek düzey) ve YOK (alçak düzey). Bu durumda yalnızca iki simgeyi 1 (VAR) ve 0 (YOK)'u kavrayabilmektedir.
İşte bu sebeple yalnızca 1 ve 0 simgelerini kullanan bir sistem gereklidir. Bu da iki tabanlı sistemdir. Bu tip sayılama, sanılanın tersine, bilgisayarla birlikte doğmamıştır. XII. yüzyıla doğru Çin'de çoktan kullanılıyordu. İki tabanlı sistem de konumsal sistemdir, çünkü mevcut iki simgenin değeri, konumlarına bağlıdır. Herhangi bir bilginin bilgisayar tarafından işlenebilmesi, saklanabilmesi ya da mevcut bilgilerden yeni bir bilgi türetilebilmesi için, önce bilgilerin elektriksel darbelere tercüme edilmesi, yani elektriksel darbeler tarafından temsil edilecek bir hale getirilmesi gerekir. İşte 2 tabanlı sayı sistemi, bilgileri elektriksel darbeler tarafından temsil edilebilecek bir şekle tercüme eden matematiksel bir notasyondur. Bizim saklamak istediğimiz bilgiler ya da bu bilgiler üzerinde yapılmasını istediğimiz işlemler, bilgisayarın içinde daima 2 tabanlı sayı sistemi ile gösterilir. Bu yüzden 2 tabanlı sayı sistemine makine dili de denir.
Ancak sayısal ve mantıksal bilgilerin nasıl 2 tabanlı sayı sistemi tarafından temsil edilebildiğini görmek için konumsal bir sistemin ayrıntılarını daha da yakından inceleyelim. Bildiğimiz 10 tabanlı sayı sisteminde her sayının 0, 1, ..., 9 gibi rakamların yan yana sıralanmasıyla ifade edildiğini görmüştük. Bu sıra içerisindeki herhangi bir rakamın, diyelim 5'in
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 62
40 PRİNT TAB(27): 20 END RUN
Yukarıdaki örnekte, 31. sütuna A harfi yazılmış olduğu için, yazıcı ikinci çıktıyı, yani 1 rakamını, ikinci satırın 34. sütununa yazdı. Eğer bir PRINT satırı noktalı virgül (;) ile bitiyorsa, onu takip eden ikinci PRINT komutunun gerekleri de aynı satıra yazılır. Mesela şu iki program,
40 PRINT “3 KERE 3-”;3*3 20 END
ve
O PRİNT “3 KERE 3-”; 45 PRİNT 3*3 20 END
aynı çıktıyı verir: 3 KERE 3=9
Son olarak PRINT komutunu hiçbir ifadenin takip etmediği bir satırın, çıktıda boş bir satırın yazılmasına, yani bir satır atlanmasına yol açacağını belirtelim:
40 PRİNT “BU SATIRDAN SONRA” 20 PRİNT
30 PRİNT “BİR SATIR BOS KALACAK” RUN
BU SATIRDAN SONRA
BİR SATIR BOŞ KALACAK ASCII Kodu
Şimdi bu noktada bir an duralım. Daha önce bilgisayara verilen tüm verilerin elektrik sinyalleri tarafından temsil edilebilir bir biçimde olması gerektiğini söylemiştik. Kısaca da bu gerekliliği ikili sayı sisteminin karşıladığını söylemiştik. Oysa şimdi bilgisayara klavye aracılığıyla, üç farklı türden bilgi (harfsayısal -yani karakterler-, sayısal ve kontrol) iletebileceğimizi, PRINT komutlarında üç farklı türden değişken kullanabileceğimizi söylüyoruz. İkili sayı sisteminde olmayan bu bilgileri bilgisayar nasıl okuyacak? Haydi ilişkisini bir yana bıraktık sayısal, dahi olmayan karakter ve kontrol karakterleri bilgisayar içerisinde nasıl temin edilecek? Kısaca tekrarlayalım: Tüm sayısal cihazlar gibi bir bilgisayar da yalnızca 0 ve 1 simgelerini ayırdedebilir. Bu sebeple veriler (sözcükler ya da sayılar) bilgisayara girmeden önce bir sıfırlar ya da birler dizisine çevrilir. Bilgisayarın içindeki verilere ulaşabilmek içinse bunun tersi işlemi yapmak, yani sıfırlar ve birlerden oluşan bir diziyi harflere ya da 10 tabanlı bir sayıya çevirmek gerekir. Bu çevirme işlemlerinden birincisine kodlama (şifreleme), ikincisine de kod çözme (şifre çözme) denir. Kodlamanın en basit şekli 10 tabanlı bir sayıyı 2 tabanlı eşdeğerine çevirmektir. Bu yeni biçimde sayı 0 ve 1 simgeleriyle ifade edilir. Alfabenin harfleri için böyle “matematiksel” bir kodlama yoktur. Tek çare tamamıyla isteğe bağlı olabilecek bir kodlama cetveli hazırlayıp harflerin (ya da başka simgelerin) birler ve sıfırlarla gösteriliş biçimini belirlemektir. Bu gösteriliş biçimine KOD denir. Böylece her harfin kendi kodu bulunur ve bilgisayar kodlanmış harfi tanır. Bilgisayarın verileri dışarıya vermesi için, iki tabanlı bilgileri kullanıcının anlayacağı yazı veya çizi biçimine dönüştürecek devrelere ihtiyaç vardır. Gelişigüzel kodlamalar kullanışlı değildir, çünkü çeviri çizelgeleri farklı olursa bilgisayarlar veri değiş tokuşu yapamazlar, yapsalar da kodların birbirine çevirisi için karmaşık metodlara ihtiyaç vardır. Bundan başka gelişigüzel kodlamada bir verinin doğru çevrilip çevrilmediğini, hatasız olup olmadığını kontrol etmek mümkün olmaz. Bu sebeplerden ötürü üreticiler standart bir kodu, ASCII kod kullanıyorlar. ASCII “American Standard Code for Information Interchange” sözcüklerinin kısaltmasıdır. Bu koda göre bir simge 7 bitle gösterilir, dolayısıyla 128 simge kodlanabilir (0-127'ye kadar). ASCII kodları, her birinin farklı işlevi olan üç gruba ayrılır:
— Kontrol karakterleri — Simgeler ve sayılar — Harfler
Kontrol Karakterleri
Kontrol karakterlerinin ekran kontrolüyle ilgili olan bir kısmını zaten yukarıda görmüştük. Daha genel olarak kontrol karakter kodlarını, alfabede karşılıkları olmayan ve komutların iletiminde kullanılan kodlardır, diye tanımlayabiliriz. Bilgisayarla onlara bağlı çevresel birimlerin arasındaki veri değişimi sırasında, çevresel birimlerin yönlendirilmesi için birtakım komutlar gereklidir. Misal olarak bilgisayarın yalnızca ekrana değil, bir bilgiyazara da satır ilerleme ve satır hareketi için komut vermesi gerekir. Yazma komut sırası şöyledir:
1/ Harf basım biriminin birinci satırın başında hazır olması 2/ İlk satırın yazılması 3/ Harf basım birimine “sayfanın sol kenarına git!” komutunun verilmesi 4/ Kağıdın bir satır ilerlemesi için komut 5/ İkinci satırın yazılması Çevrim yeniden (3) ile başlar ve böyle sürer.
1., 3. ve 4. adımlarda iletilen kodlar, bilgiyazarın kontrolünü sağladıklarından, kontrol işaretleri olarak adlandırılır. Varışlarında yorumlanır ve kontrolü sağlayan devrelere ulaştırılırlar. Kontrol işaretlerinin çoğu, bilgisayarlar arası veri değiş tokuşu gibi özel gayelerle kullanılır. Kullanıcı programlarında yer almazlar. Uygulamada sık kullanılan bazı kodlar aşağıda gösterilmiştir. Aşağıdaki çizelgede daha iyi anlaşılmaları için, ASCII kodlarının Türkçe anlamları da yer alıyor, ancak kodlar normal olarak İngilizce adları ile isimlendirilir. Kısaltılmış simgeleri de İngilizce isimlerinden türetilmiştir. Bu kodları