Şimdi Ara

1 ve 0'lar nasıl bilgisayarda görüntü oluşturur ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
19
Cevap
2
Favori
11.482
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Evet arkadalar başlıktan anlaşılabileceği gibi sorum şu : Bilgisayardaki her şey 1 ve 0 ama bu nasıl oluyorda önümüzde duran grafiklere dönüşüyor ?



  • Bilgisayardaki her şey 1 ve 0'dır ancak bütün 1-0'lar aynı değildir.
    Şöyle bir soru soralım örnek olarak.
    0110 0001 bu binary(ikili) sayı nedir, bize ne anlatıyor ne ifade ediyor.
    İlk olarak bunun onluk bir sayının binary ifade edilmesi olduğunu düşünebiliriz, o zaman bu bize 97 olduğunu anlatır.
    İkinci olarak bunun ascii tablosundaki bir değere işaret ettiğini düşünebiliriz, o zaman bu aslında a harfidir.
    Belki de ben bir arkadaşımla özel binary sistem geliştirmişimdir, bu aslında patates getir bile olabilir.

    Burada anlatmak istediğim nokta o 1-0'ların hangi şekilde okunması gerektiği de en az 1-0'lar kadar önemlidir.
    Birisi size 1001110 ne demek dediğinde ilk soracağınız şey hangi kodlama sistemiyle kodlanmış olduğudur.

    Sorunuzda grafikleri sormuşsunuz, grafikler pixellerden oluşuyor, pixeller ise renkle dolduğunda bir anlam ifade ediyor.
    Grafik oluşturmada iki problem var hangi pixel ve hangi renk?

    Elimizde 8 tane pixel ve 3 farklı renk olsun.
    Pixelleri 8 bitle ifade edelim 0000 0001 bu 1.pixel olsun 1000 0000 bu da sonuncu olsun mesela.
    Renkler de 3 bitle ifade edilsin, 001 kırmızı, 010 yeşil, 100 da mavi olsun.
    Dikkat edin böyle bir kodlama sistemi yok bunu biz oluşturuyoruz.
    Ayrıca ilk 3 bit renk, sonraki 8 bit ise hangi pixel olduğunu ifade edecek şekilde 11 bitlik bir kodlama yapalım.
    Şimdi ben buna uygun bir makine ve ekran tasarladım.
    Makineye 100 0100 0000 (yani 10001000000) gönderdim, sonuç ne olur.
    Makineye oluşturduğum sisteme uygun bir kod çözücü koyarım ve makine aslında benim 7.pixelin rengini mavi yapmak istediğimi anlar.

    Gerçekte olan şey de pek farklı değil, rgb(red, green, blue) kodlama sistemi geliştirilmiş.
    Her renk 8 bitle ifade ediliyor, ama bu 8 bit bizim yaptığımız gibi sadece 1 bitin dolu olduğu değil 1101 0011 gibi birden fazla bitin dolu olabildiği bir 8 bit sistemi. Bu yüzden 8 bitle 256 farklı değer elde edebiliyoruz bunlar red, green ve bluenun tonları.
    256*256*256=16,777,216 olmak üzere 16 milyondan fazla rengi tarif edebiliyoruz. Ekrandaki pixeller de benzer bir haritalama sistemiyle kontrol ediliyor. Olay bundan ibaret.

    Buradan çıkarılacak en önemli sonuç 1 ve 0'larla her şey ifade edilebilir, sadece görüntüler değil sesler, sıcaklıklar, nem oranı vsvs. Sadece istediğiniz şekilde kodlama yapıp buna uygun olarak da o kodları çözen bir makineniz olacak.
  • Bilgisayardaki her şey 1 ve 0'dır ancak bütün 1-0'lar aynı değildir.
    Şöyle bir soru soralım örnek olarak.
    0110 0001 bu binary(ikili) sayı nedir, bize ne anlatıyor ne ifade ediyor.
    İlk olarak bunun onluk bir sayının binary ifade edilmesi olduğunu düşünebiliriz, o zaman bu bize 97 olduğunu anlatır.
    İkinci olarak bunun ascii tablosundaki bir değere işaret ettiğini düşünebiliriz, o zaman bu aslında a harfidir.
    Belki de ben bir arkadaşımla özel binary sistem geliştirmişimdir, bu aslında patates getir bile olabilir.

    Burada anlatmak istediğim nokta o 1-0'ların hangi şekilde okunması gerektiği de en az 1-0'lar kadar önemlidir.
    Birisi size 1001110 ne demek dediğinde ilk soracağınız şey hangi kodlama sistemiyle kodlanmış olduğudur.

    Sorunuzda grafikleri sormuşsunuz, grafikler pixellerden oluşuyor, pixeller ise renkle dolduğunda bir anlam ifade ediyor.
    Grafik oluşturmada iki problem var hangi pixel ve hangi renk?

    Elimizde 8 tane pixel ve 3 farklı renk olsun.
    Pixelleri 8 bitle ifade edelim 0000 0001 bu 1.pixel olsun 1000 0000 bu da sonuncu olsun mesela.
    Renkler de 3 bitle ifade edilsin, 001 kırmızı, 010 yeşil, 100 da mavi olsun.
    Dikkat edin böyle bir kodlama sistemi yok bunu biz oluşturuyoruz.
    Ayrıca ilk 3 bit renk, sonraki 8 bit ise hangi pixel olduğunu ifade edecek şekilde 11 bitlik bir kodlama yapalım.
    Şimdi ben buna uygun bir makine ve ekran tasarladım.
    Makineye 100 0100 0000 (yani 10001000000) gönderdim, sonuç ne olur.
    Makineye oluşturduğum sisteme uygun bir kod çözücü koyarım ve makine aslında benim 7.pixelin rengini mavi yapmak istediğimi anlar.

    Gerçekte olan şey de pek farklı değil, rgb(red, green, blue) kodlama sistemi geliştirilmiş.
    Her renk 8 bitle ifade ediliyor, ama bu 8 bit bizim yaptığımız gibi sadece 1 bitin dolu olduğu değil 1101 0011 gibi birden fazla bitin dolu olabildiği bir 8 bit sistemi. Bu yüzden 8 bitle 256 farklı değer elde edebiliyoruz bunlar red, green ve bluenun tonları.
    256*256*256=16,777,216 olmak üzere 16 milyondan fazla rengi tarif edebiliyoruz. Ekrandaki pixeller de benzer bir haritalama sistemiyle kontrol ediliyor. Olay bundan ibaret.

    Buradan çıkarılacak en önemli sonuç 1 ve 0'larla her şey ifade edilebilir, sadece görüntüler değil sesler, sıcaklıklar, nem oranı vsvs. Sadece istediğiniz şekilde kodlama yapıp buna uygun olarak da o kodları çözen bir makineniz olacak.



    < Bu mesaj bu kişi tarafından değiştirildi Guest-D639AD061 -- 2 Mart 2017; 19:36:48 >




  • peki bu 1 ve 0 ların neyi temsil edeceğini nerede belirliyoruz ? (söylediklerinin çoğunu anladım kafamda oturdu ama hala bazı sorular var sorum bundan :) )
  • Nerede belirliyoruz derken bunu donanımı üreten kişi ayarlıyor.
    Eğer çok fazla detaya inmek isterseniz 1'in aslında yaklaşık 5 Volt elektrik 0'ın da 0 Volta yakın elektrik olduğuna kadar bile inebilirsiniz. Onun daha altında işlemci tasarımı, işlemci tasarımında lojik devreler, lojik devrelerde lojik kapılar bu böyle gider. Zaten grafik çizdirme işlemi işletim sistemi üzerinde yapılıyor, donanım kısmını halleden program aslında işletim sisteminin kendisi. Benim anlattığım kısım işletim sisteminin yaptığı kısım. Gerçekten bir bilgisayarın nasıl çalıştığını anlamak için yurt içinde bm, yurt dışında cs okumak gerekli. Çünkü bunlar microprocessors(mikroişlemciler), bilgisayar mimarisi(computer systems), logical design veya digital design(lojik devreler) gibi birçok dersin ortak konusu maalesef.
  • çok sağ ol cevapların için :) aydınlandım :D
  • Goruntu, arka arkaya tekrar eden resimlerden, resim de piksellerden, piksel de renklerden, renkler de o renkleri kodladigin bitlerden yani 1 ve 0 lardan olusuyor.
    Senin belirledigin renk derinligi ne ise ona gore olusturabilirsin. Ornegin cok basit bir sekilde, 1 olan pikseli beyaz, 0 olani siyah olarak belirleyebilirsin. Boylelikle 2x2 luk bir resmi 4 bit ile gosterebilirsin. Bunu 2x2 matris gibi dusun.
    1 1
    1 1
    Mesela ustteki resim beyaz ekran. 2x2 cozunurlukte kucuk bir ekranda 25 fps'lik beyaz ekran videosu izliyorsan eger, aslinda saniyede 25 defa hepsi 1 olan 2x2 matristen olusan bir dataya bakiyorsun.
    En temelde bu sekilde olusuyor, bir suru ayrintisi var bu isin derinlere indikce. Ornegin aslinda grafikleri modellerken poligonlar kullaniliyor, onlari da cizmek icin GPU ozellesmis bir islemci kullaniyor vs.



    < Bu mesaj bu kişi tarafından değiştirildi Mephalay -- 3 Mart 2017; 2:25:19 >
    < Bu ileti tablet sürüm kullanılarak atıldı >
  • 1 ve 0 ı derlemek için üretilen mimariler ve bunlar makina kodlarıdır. intelin x86 mimarisi gibi.
  • Peki bilgisayarlar neden ikilik sistemle çalışır? Onluk sistemle çalışsaydı daha iyi anlaşamaz mıydık?



    < Bu mesaj bu kişi tarafından değiştirildi Guest-BF8E9B238 -- 3 Mart 2017; 10:32:39 >
  • quote:

    Orijinalden alıntı: deniz caliskan

    https://www.technopat.net/2017/01/30/bilgisayarlar-ikili-sayi-sistemi-kullanir/

    Kısaca her şey olmak ya da olmamak, 'ON'line ya da 'OFF'line olmak.
  • Programlamaya hobi olarak işe giriştim, dolayısıyla programlama ile ilgili pek bi' yeniyim, üşengecim Ben de başka bir şey sorayım. Yani mimarisi farklı olduğundan telefonumuzdaki programın, bilgisayarda çalışmamasının sebebi:

    Telefonun (ARM mimarisinin) "c dilinde grafik kütüphanesini aç, ekrana [TAMAM] [İPTAL] yazdır" komutunun (atıyorum) 01010101 komutu verirken
    Bilgisayarın (x86 mimarisinin) "c dilinde grafik kütüphanesini aç, ekrana [TAMAM] [İPTAL] yazdır" komutunun (atıyorum) 01111111 komutunu vermesi mi oluyor? Yani dil aynı olsa bile komut farklı işleniyor?

    Ayrıyetten başka bir soru, Linux da Windows da x86 kullanıyorsa neden programlar çalışmıyor? Şu an Python öğreniyorum. Ve yine ekrana print("merhaba dünya") yazıyorum arkaplanda 1/0 sisteminde çeviriliyor ve ekrana yazılıyor. Başka bir dilden yazılsaydı da yine aynı 1/0 komutuna işlenmiyor mu?




  • quote:

    Orijinalden alıntı: Gorkemq

    Programlamaya hobi olarak işe giriştim, dolayısıyla programlama ile ilgili pek bi' yeniyim, üşengecim Ben de başka bir şey sorayım. Yani mimarisi farklı olduğundan telefonumuzdaki programın, bilgisayarda çalışmamasının sebebi:

    Telefonun (ARM mimarisinin) "c dilinde grafik kütüphanesini aç, ekrana [TAMAM] [İPTAL] yazdır" komutunun (atıyorum) 01010101 komutu verirken
    Bilgisayarın (x86 mimarisinin) "c dilinde grafik kütüphanesini aç, ekrana [TAMAM] [İPTAL] yazdır" komutunun (atıyorum) 01111111 komutunu vermesi mi oluyor? Yani dil aynı olsa bile komut farklı işleniyor?

    Ayrıyetten başka bir soru, Linux da Windows da x86 kullanıyorsa neden programlar çalışmıyor? Şu an Python öğreniyorum. Ve yine ekrana print("merhaba dünya") yazıyorum arkaplanda 1/0 sisteminde çeviriliyor ve ekrana yazılıyor. Başka bir dilden yazılsaydı da yine aynı 1/0 komutuna işlenmiyor mu?

    İşlemciler sadece sayılar üzerinde işlem yaparlar. Senin de söylediğin gibi bu sayılar işlemcinin komut setine göre değişiklik gösterir. Adamlar demiş ki bir standart oluşturalım, herkes aynı şekilde yazsın ve sonra işlemciye uygun şekilde dönüşüm yapalım.

    Linux ve windowsun "executable" dosya formatı aynı değil. Aynı olsa dahi yine çalışmaz. İşletim sisteminin kernel fonksiyonlarının tutulduğu dll/.so dosyaları, fonksiyon imzaları, adresleri vs. hepsi farklı. Sen hangi dille ekrana yazı yazdırırsan yazdır o eninde sonunda gidip işletim sisteminin kernel fonksiyonunu çağıracak. Yani özetle program işletim sistemi altında çalışıyorsa hem işlemciye hem işletim sistemine bağımlıdır. Tabi İS olmayan ortamlar da var. Bunlara bare metal deniyor.




  • O zaman şu örneklendirme doğru olur mu? Güzel sanatlardan gireceğim:

    İşlemci tuval(x86) da olabilir kağıt(ARM) da,
    İşletim sistemi ise Linux spatula olsun Windows ise fırça
    Programlama dilleri ise boyalar oluyor,kırmızı Python olsun mavi C# olsun,

    Resim çizebilmek için yüzey lazım tuval veya kağıt
    Yüzeyde çizim olabilmesi için de bunu aktaracak bir şey olması lazım spatula veya fırça
    Çizimin kendisi de mavi/kırmızı olsun

    Ben boyayı fırçaya/sptaulaya sürüyorum çünkü fırça/spatula tuvale nasıl sözünü(boyasını) geçireceğini biliyor.
    (Ben C#'yi Windows'a yazıyorum çünkü C#'nin yorumlayıcısı kodu Windows kerneline gönderebiliyor, Windows kerneli de bunu assembly'e çevirmesini biliyor.)
    (Ben Python'u Linux'a yazıyorum çünkü Python'un yorumlayıcısı kodu Linux kerneline gönderebiliyor, Linux kerneli de bunu assembly'e çevirmesini biliyor.)




  • Altta yazdığın sıra yanlış olmuş.

    Kod -> derleyici -> assembly (opcode) -> user/system fonk. çağrıları
  • ah bu şehir efsaneleri :(
    bilgisayar 1/0 ile çalışmaz. insan kadın ve erkekten oluşur. kadar sığ bır yaklaşım ve kimseye de bilgi olarak faydası yok. o işin sadece bir parçası.
  • mahoni_38 kullanıcısına yanıt

    Hocam siz de bildiklerinizi anlatın. Sizden istifade edelim müsade ederseniz.


    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Görüntü yada herhangi bir işlemi donanım oluşturur.


    Gerisi aç kapa işlemlerinden ibaret. Adı 1 ve 0 olur, i/o olur, Henzel ve Gretel olur, işlem açmak yada kapatmaktan ibaret.

  • ulan işsizler kaç senelik konuyu hortlatmışınız   yeri gelmşken 1.0 e açıklık getirelim herşey yani iletişm ve görünütü için herşey kısa akım uzun akımdır bilgisayar karşılıgıda 1 ve 0 dır olay bundan ibaret

  • Başlangıçta her şey toz ve gaz bulutuydu.  

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.