Basitleştirilmiş bir örnek olarak, bir metin düzenleyiciyle açılan bir görüntü dosyasını düşünün.
Görüntü, 3 piksel genişliğinde kareler ve her kare arasında 1 piksellik gri bir kenarlıkla basit bir satranç şeklidir. - üç siyah piksel, gri kenarlık pikseli, üç beyaz piksel, gri kenarlık pikseli, tekrarlayın.
Bu görüntüdeki ilk satır dört kez aşağıdaki değere sahip olacaktır:
Black Black Black Gray White White White Gray
0x000000 0x000000 0x000000 0x7F7F7F 0xFFFFFF 0xFFFFFF 0xFFFFFF 0c7F7F7F
(Hex'de, Binary yerine - Binary'deki dize dört kat daha uzun olur - 0x7F, 0b01111111 ile değiştirilir)
Bu veri dizisini bir metin düzenleyiciye yüklerseniz aşağıdaki metni alırsınız:
[Nul] [Nul] [Nul] [Nul] [Nul] [Nul] [Nul] [Nul] [Nul] [Del] [Del] [Del] [Boş] [Boş] [Boş] [Boş] [Boş ] [Boş] [Boş] [Boş] [Boş] [Sil] [Del] [Del]
Bunun nedeni, 0x00'ün Null değerinin ASCII kodudur ve siyah bir pikselin değerini almak için bu 3 kez yazmanız gerekir (yine de 24bit BMP'de) ve 3 siyah pikseliniz var. O zaman 0x7F, Delete için ASCII kodudur ve gri bir piksel elde etmek için üç kez BU'ya ihtiyacınız vardır. 0xFF, belirli bir şey için geçerli ASCII kodunu değil - genişletilmiş ASCII setinde bile - ve 3 beyaz piksel elde etmek için 9 kez yazmanız gerekir. Tamamladıktan sonra, gri bir piksel yazmak için üç Silme daha elde edersiniz.
Daha faydalı bir şekilde açıklayıcı olabilecek, göstermenin farklı bir yolu bunun tam tersi bir örnektir - bir metin editöründe açıldığında sıfır olanları almak için bir dosyaya ne yazmanız gerekir?
ASCII elbette sıfır ve bir kodlar! Bir metin düzenleyicisindeki sıfır, 0 değerine sahip tek bir bit olarak değil, 0b00110000 değerine sahip 8 bit olarak veya onaltılık 0x30 değerinde depolanır.
'0' için ASCII kodu 0x30 ve '1' için ASCII kodu 0x31'dir, yani bir satranç desenini sıfırlar ve olanlar olarak saklamak istiyorsanız, dosyanız şöyle görünecektir:
text editor:
10101010
01010101
10101010
01010101
Stored data (ASCII values for '1', '0' and 'new line'):
0x31 0x30 0x31 0x30 0x31 0x30 0x31 0x30 0x0D 0x30 0x31 0x30 0x31 0x30 0x31 0x30 0x31 0x0D 0x31 0x30 0x31 0x30 0x31 0x30 0x31 0x30 0x0D 0x30 0x31 0x30 0x31 0x30 0x31 0x30 0x31
Bundan daha fazlası var - dosyalar başlamış, durmuş, meta veriler ve diğer her türlü şeyden bahsetmişler, ancak aldatma dersi ve sorunuza cevap:
Dosyanızın ilk 8 biti 0b00110000 değilse, metin editörünüz '0' yazmaz çünkü bu '0' karakterinin ASCII kodudur. Dosyanız ilk 8 bit olmadıkça, dosya 0b00110001'dir, metin editörünüz '1' yazmaz çünkü bu '1' karakterinin ASCII kodudur.