Öğrendiklerimizi Sorguluyor muyuz? ” Acaba Neden Böyle? ” diye Soruyor muyuz?

Genel ve herkesin bileceği bir konu olduğu için bir tane sayısal örnekten yola çıkacağım. Bakalım sadece bir örnekten ne kadar soru çıkarabileceğiz? Mağlum hocalarımız da sayıları pek severler. Tabi özellikle şu nedir bu nedir falan türlü sorulara cevap olarak verilen sayıları. Yoksa nedeni ile pek ilgilenmezler. Çünkü o sorunca mesela cevap verebilmelisin ki hocam -32768 ile 32767 arasında değişiyor falan. Sakın ha bilmiyorum deme aksi halde cevap hazırdır: “Otur senin biliyin sıfır.” Tabi ben de cinsimdir biraz, inatlaşırım böyle hocalarla, cevap vermem. Bilsem de vermem, bilmiyorum derim. Çünkü bir insanın herhangi bir soruyu soruş biçimi çok önemlidir benim için. Acaba ne maksatla sordu bana bu soruyu falan çok hızlı bir şekilde düşünür, ona göre eylemimi koyarım ortaya. Tabi insanım ben de ve insandan da iyi anlıyorum hemen biliyorum ki o bunu şu maksatla sordu. Eğer benim ilkelerime uygun bir soruş tarzı ise ben de insan gibi cevap veririm. Ama değilse aksini yaparım. Neyse zaten bilen hocalar biliyor kimin biliyi sıfır kimin değil…

Bazı hocalar programlama dili bile bilmediği halde programlama soruyorlar sınavlarda, bize öğretilmediği halde, (Tabi nereden buluyorlar acaba o soruları o da ayrı mesele.) fakat bu konuya fazla girmeyeceğim. Benim kanım, bu yöndeki gördüklerime dayanarak: Sordukları programlama ilgili soruların bir kısmını bilen öğrencilere sana bal yazacağım ödülü ile küçük programlar yazdırarak, bir kısmını sağdan soldan test kitaplarından falan, bir kısmını da bir şeyler bilen hocalardan yardım istemek suretiyle derliyorlar.

Şunu söyleyebilirim öğrendiklerimizi sorguluyor muyuz? sorusu ile ilgili olarak: Burada demek istediğim sınavlarda falan gözümüze çarpanlar, ilgilenenlerin kendi öğrendikleri, ilgilenmeyenlerin sağdan soldan duyup öğrendikleri ve bazı istisna hocaların bize öğrettikleri vs.

Ve işte konumuz, birçoğumuzun nefret ettiği byte larla ilgili. Öncelikle şu önbilgileri verelim:

4 bit = 1 Nibble
8 bit = 1 byte
16 bit = 1 word
32 bit = 1 double word
64 bit = 1 quadro word

Neden kısa tamsayı türü sayılar -128 ile +127 arasında değişiyor?
Hadi hiç düşünmeden diyelim 1 byte yer kaplama meselesine göre diye cevap verip kestirip atalım konuyu. Peki ama 253, 254, 255 sayıları da 1 byte yer kaplamıyor mu?
Hatta bunu Rasim Hocamız sağolsun anlatmıştı, neden IPv4’de bir IP bölüğünün 255’e kadar değiştiğini anlatırken.
Mağlum byte türü değişkenlerin alabileceği değerler 0 ile 255 arası ve 1 byte yer kaplıyorlar.
(127)10 = (1111111)2 biz bu sayıyı 0111 1111 şeklinde iki nibble haline getirelim. Peki ama sol baştaki değer 0 ve biliyoruz ki o değeri 1 de yapabiliriz 1 byte = 8 bit olduğu için. Bu 0’ı 1 yapınca da 255 sayısını alıyoruz ne güzel.
Acaba burada baştaki değerin 0 veya 1 olması farklı bir anlama mı geliyor yoksa?

Neden tamsayı türü sayılar -32768 ile 32767 arasında değişiyor?
Yine burada da 65533, 65534, 65535 sayıları da 2 byte yer kaplamıyor mu?
(32767)10 = (111111111111111)2 bu sayıyı da 0111 1111 1111 1111 şeklinde 4 nibble haline getirelim. Burada da aynı şekilde sol baştaki değeri 1 yapabiliriz. Ve 1 yapınca da 65535 sayısını elde ediyoruz.
Mağlum word türü değişkenlerin de alabileceği değerler 0 ile 65535 arası ve 2 byte yer kaplıyorlar.
Yine burada da acaba baştaki “0, 1″lerin farklı bir anlamı mı var?

Neden uzun tamsayı türü sayılar -2147483648 ile 2147483647 arasında değişiyor?

vs.

Bir şeyleri ezberlemek yerine kavramak için bolca “Neden?”li soru sormamız gerektiği kanısındayım. Ve her ne kadar beş para etmez hocalarımız olsa da kendi çabalarımız ile bir şeyler öğrenmemiz lazım eğer bir amacımız bir hedefimiz var ise. Tabi iş tamamen bize kalınca böyle insan çok fazla zorlanıyor; Hiç başkasının anlattığını dinleyerek öğrenmek gibi kolay olmuyor; Hem bir şeyleri kavramak vakit alıyor hem de güdülenemiyor insan tek başına, dış etkenlerin de etkisi büyük yani bu konuda. Ama napalım bizim de kaderimiz buymuş…

İlginçtir ki bu dönem iyi hocalar var gibi ama göreceğiz, dönem daha yeni başladı…