Aslında her şey 1'ler ve 0'lardan oluşuyormuş.
Bu dersimizi anlatırken elektronik ile ilgili detaylara inmedik. Zaten istesek bile inemeyiz çünkü benim elektronik konusunda bir uzmanlığım yok. Konu hakkında biraz araştırma yaptıktan sonra basit bir anlatım gerçekleştirmeye çalıştım. Ayrıca terminolojiyi doğru kulllanmak gibi bir kaygımız da olmadı. Örneğin; işlemci sadece elektrikten anlar dediğimizde transistörlerden vs. bahsetmedik hiç. Yüzeysel bir anlatım yaptık. Yine aynı şekilde "Analog sinyal nedir?", "Dijital sinyal nedir?" vb. konuları tek tek açıklamadık.
Elektronik konusu olsun veya bir bilgisayarın aşama aşama nasıl çalıştığı konusu olsun, bunlar gerçekten çok derin konular. Ve biz yazılım geliştirici olarak bu konuları bilmek zorunda değiliz. Bu tıpkı araba sürmeyi öğrenmek isteyen birisinin, "Motor nasıl çalışır?" konusu ile ilgilenmemesi gibi bir şey.
Bu dersi yapmamızdaki amaç 1'ler ve 0'lar konusuna bir açıklık getirmekti. Özet olarak şu bilgiler aklımızda kalsın;
- Bilgisayar elektronik bir alet olduğu için elektrikten anlar.
- 1'ler ve 0'lar konusu elektrik sinyallerine ilişkin bir konudur. Elektrik sinyalinin değeri yüksekse 1, alçaksa 0 olarak ele alınır. (Tam tersi de olabilirdi. Yüksekse 0, alçaksa 1.)
- Bu 1 ve 0 için lojik 1 ve lojik 0 da dedik. Yani elektrik sinyali yüksekse mantıken 1, sinyal azsa mantıken 0.
- Bizim saf makine dili(ingilizce Machine Code) dediğimiz, işlemcinin doğrudan anlayabildiği dil 1 ve 0 lardan oluşur. Yani evet işlemciden sizin için bir şey yapmasını isterseniz eğer 10010101010 gibi kodlar yazmanız gerekir.
- Google'a "Machine Code" yazıp aratırsanız ve karşınıza 1 ve 0 dan farklı olarak "AD 00 08" gibi ifadeler çıkarsa şaşırmayın. Bu ifadeler makine kodunun 16 lık sayı sisteminde yazılmış halidir. Yani 2'lik sayı sistemi yerine 16'lık sayı sisteminde bir gösterim yapılmıştır. Sayı sistemleri konusunu bir sonraki derste ele alacağız.
Bizim yazacağımız kodlar 10101010101010 şeklinde kodlar mı olacak?
Videoda bu soruya kısmen cevap verdik ancak yine de bir şeyler söyleyelim. Bizim yazacağımız kodlar 1101010011001 şeklinden kodlar olmayacak. Evet bilgisayar yalnızca 1'ler ve 0'lar dan anlıyor. Ancak bizim yazacağımız kodlar(yani bizim kullanacağımız programlama dilinin yazım biçimi), ingilizce sözcükler içeren çok daha okunaklı bir yazım biçimi olacak.
O zaman bilgisayar nasıl anlayacak bizim yazdığımız kodları ?
Çevirici program dediğimiz bilgisayar programları var. Bu programlar bizim yazdığımız kodları başka bir programlama diline ait kodlara dönüştürüyor. Yani bizim yazacağımız kodları makine diline dönüştüren bir bilgisayar programı var. Ancak bu durum kullanılan programlama diline göre de değişkenlik gösteriyor. Örneğin C# ta farklı bir durum söz konusu. Bu ünite boyunca tüm detayları ile bu konuları açıklayacağız zaten.