Binary sistemi

Kodla Büyü

Enterprise

Hiperaktif Üye
Hiperaktif
Süper Üye
Mesajlar
2,794
Bugün çocuklarla 35 ve -35 sayılarını 2lik sisteme çevirdik. Eksi yapmanın 3 yolu var 1. İşaret bitini 1 yapmak 2. 0 ları 1, 1leri 0 yapmak 3. ise 1i görene kadar aynı bırakıp sonra 1-0 dönüşümü yapmak yani 2ye tamamlamak.
Eee tüm bunları yaptığımızda 10 Luk sisteme çevirdiğimizde farklı bir sayıya denk geliyor bilgisayar bunu nasıl ayırt ediyor?
İkincisi de harflerin hexadecimal kodlarında mesela küçük a 36 diyelim bunu. 2lik sisteme çevirip anlıyor e a mı dedim sayı olarak 36 mı dedim bunu nereden anlıyor?
Üçüncüsü de RGB renk kodları neden 255e kadar?
 
ChatGpt Böyle dedi hocam
  • Negatif sayılar ve ikili sistem:Bilgisayarlar negatif sayıları genellikle "ikinin tümleyeni" yöntemiyle temsil ederler. İkili sistemde bir negatif sayıyı temsil etmek için:
    • Pozitif sayıyı ikili sisteme çevir.
    • Sayıdaki tüm bitleri ters çevir (1'leri 0 yap, 0'ları 1 yap).
    • Son olarak bu sonuca 1 ekle.
      Eğer negatif bir sayıyı tekrar ondalık sisteme çevirmek isterseniz, aynı "ikinin tümleyeni" yöntemini geri çalıştırarak doğru sonucu alırsınız. Bu nedenle, bilgisayar bir sayıyı negatif olarak anladığında, bu işlemleri uygulayarak doğru sayıya ulaşır.
  • Harfler ve sayılar arasındaki ayrım:Bilgisayarlar ASCII ya da Unicode gibi karakter kodlama sistemlerini kullanır. Örneğin, küçük "a" harfi ASCII tablosunda 97'ye karşılık gelir. Bilgisayar, karakterleri sayı olarak temsil etmek için belirli bir kodlama standardını kullanır. Yani, bir karakter kodu (örneğin 97) gönderildiğinde, bu kod "a" harfiyle eşleştirilir. Eğer sayı olarak 36 gönderiliyorsa, bu bir karakter değil bir sayıdır, çünkü karakter kodlama tablosunda 36 başka bir karaktere karşılık gelir.
    Bilgisayar, veri tiplerine ve bağlama göre bir karakter mi yoksa sayı mı kullanıldığına karar verir. Eğer bir sayı veritipindeyse, sayı olarak işlenir; eğer karakter olarak işleniyorsa, bu tabloya başvurularak karaktere çevrilir.
  • RGB renk kodları neden 255'e kadar?RGB renk kodları, her bir renk bileşeni (Kırmızı, Yeşil, Mavi) için 8 bit (1 byte) kullanır. 8 bitlik bir sayı 0'dan 255'e kadar 256 farklı değeri temsil edebilir. Bu yüzden RGB renk kodlarında her renk bileşeni 0 ile 255 arasında bir değere sahip olabilir. Bu, her renk bileşenine 256 farklı parlaklık seviyesi atayarak toplamda (256x256x256) yaklaşık 16.7 milyon renk üretmeye olanak tanır.
 
Eee tüm bunları yaptığımızda 10 Luk sisteme çevirdiğimizde farklı bir sayıya denk geliyor bilgisayar bunu nasıl ayırt ediyor?
İkincisi de harflerin hexadecimal kodlarında mesela küçük a 36 diyelim bunu. 2lik sisteme çevirip anlıyor e a mı dedim sayı olarak 36 mı dedim bunu nereden anlıyor?
Burada veri türleri devreye giriyor. Eğer siz veriyi tanımlarken sayı derseniz girilen sayı bildiğimiz sayı olarak yorumlanıyor ve kullanılıyor ama string veri türü derseniz o sayı harf olarak değerlendiriliyor.

Sayının negatif mi pozitif mi olduğunu da aynı şekilde veri türü belirliyor. int x = -6 yazarsanız bilgisayar onun ikili sistemde negatif sayı olarak kullanıyor. yani 1010 olarak alıyor. Ama değişken türünü unsigned olarak verirseniz sayı pozitif olarak alınıyor.

İşlem sonucuna göre de zaten sayının değeri bellekte saklanırken ne olduğu bilinerek saklanıyor.

Bize soyut kavramlar olduğu için zor geliyor ama zaten kodlarken aslında sayıların türlerini vs veriyoruz programa. O sebeple sakıntı ettiğini hiç sanmıyorum bilgisayarın bu sayıyı negatif mi alsam pozitif mi alsam diye. :D
 
Geri
Üst