Saya baru saja melihat ini dalam beberapa hari terakhir dan tidak tahu cara kerjanya. Video yang saya bicarakan ada di sini :
Itu adalah jawaban teratas dari pertanyaan Stack Overflow ini: Mengapa program ini ditolak oleh tiga penyusun?
Bagaimana bitmap ini dapat menampilkan program C ++ untuk "Hello World"?
Jawaban:
Gambar BMP (DIB) disusun oleh header diikuti oleh data 1 warna yang tidak dikompresi (untuk gambar 24 bpp adalah 3 byte per piksel, disimpan dalam urutan baris terbalik dan dengan 4 byte baris langkah).
Byte untuk data warna digunakan untuk merepresentasikan warna (yaitu tidak satupun dari mereka yang "diamanatkan" oleh format file 2 , semuanya berasal dari warna setiap piksel), dan ada korespondensi 1: 1 yang sempurna antara warna piksel dan byte yang ditulis di dalam file; dengan demikian, dengan menggunakan warna yang dipilih dengan sempurna, Anda sebenarnya dapat menulis apa pun yang Anda inginkan dalam file (dengan pengecualian tajuk).
Saat Anda membuka file yang dihasilkan di notepad, data warna akan ditampilkan sebagai teks; Anda masih bisa melihat dengan jelas dari header (bagian dari
BM
awal teks), yang diamanatkan oleh format file.Menurut pendapat saya, video ini dibuat dengan cara ini: pertama-tama penulis menghitung ukuran yang dibutuhkan untuk bitmap, dan membuat file DIB dengan ukuran yang benar yang diisi dengan warna yang meluas ke pola sederhana (mis. All bytes 65 =>
'A'
); lalu ganti pola seperti itu dengan kode "payload", seperti yang ditunjukkan di video.Perhatikan bahwa bukan tidak mungkin untuk membuat semuanya dengan tangan dengan notepad - dengan dialog pemilih warna, tabel ASCII dan pengetahuan dasar tentang format DIB, hal itu dapat dilakukan, tetapi akan jauh lebih lambat dan rawan kesalahan.
Info lebih lanjut tentang format DIB
sumber
Saya berasumsi bahwa Anda mengacu pada jawaban atas salah satu pertanyaan April Mop.
Dugaan saya adalah bahwa setiap piksel memiliki representasi biner untuknya. Dan setiap karakter dalam kode sumber memiliki representasi biner untuknya.
Orang yang membuat program pasti telah menentukan warna untuk setiap piksel yang memiliki representasi biner yang sesuai dengan setiap karakter.
sumber
Dari sudut pandang ilmu komputer teoritis, akan menarik untuk bertanya, jika setiap program dapat ditulis sedemikian rupa sehingga, dipandang sebagai bitmap, Anda benar-benar melihat kode sumber yang melakukan hal yang sama. Jika Anda sangat tertarik dengan hasil seperti itu, baca misalnya tentang teorema titik tetap Kleene .
Program-sebagai-gambar juga dapat dilihat sebagai bentuk kebingungan kode. Bukannya itu praktis ...
sumber