Neden hex editörlerine ikili editörler denir?


84

Hex ve binary iki farklı bazdır. Hex, benim anladığım kadarıyla, ikili kullanımı daha kolay ve daha kolay bir versiyonudur.

Ancak, genellikle hex editörlerinin ikili editör olduğunu duydum. Google’da "ikili düzenleyici" yi ararsanız, hex editörleri alırsınız.


3
Hex, ikili verilerin bir şekilde okunabilir temsilidir.
Salman, bir

Yanıtlar:


188

Bir ikili düzenleyici, bir dosyayı ikili dosya olarak düzenler .

İkili dosya - Vikipedi

Bir ikili dosya bir metin dosyası değil bir bilgisayar dosyasıdır. "İkili dosya" terimi genellikle "metin olmayan dosya" anlamına gelen bir terim olarak kullanılır ve genellikle bir bayt dizisi olarak düşünülür. ... İkili dosyalar genellikle metin karakterlerinden başka bir şey olarak yorumlanması amaçlanan baytları içerir.

Bir hex editörü , verinin onaltılık olarak temsil edildiği bir ikili editör türüdür .

Hex editörü - Wikipedia

Bir hex editörü (veya ikili dosya editörü veya byte editörü ), bir bilgisayar dosyasını oluşturan temel ikili verilerin manipülasyonuna izin veren bir bilgisayar programı türüdür. 'Hex' ismi 'hexadecimal' kelimesinden gelir: 16 tabanına sahip sayılar için standart bir sunum.


85

Terminoloji zor. Farklı insanlar her şey için farklı adlara sahiptir.

Bu örnekte, "hex editöründeki" hex ' in her bir bayt değerinin geleneksel insan tarafından okunabilir gösterimini ifade ettiği, "binary editör" deki ikilinin de aslında bayttaki dosyayı düzenlediğiniz fikrine değindiği anlaşılmaktadır. katman (ve bilgisayarlar, baytları ikili olarak saklar), daha yüksek seviyeli metin kodlaması ve benzerlerini göz önünde bulundurmadan kullanırlar. Kolayca üst düzey metin formunda gösterilemeyen dosyaların aynı sebepten dolayı "ikili dosyalar" veya "ikili dosyalar" olarak adlandırıldığını hatırlayın.

Teknik olarak da yanlış değil; sadece adlandırma problemine farklı açılardan geliyorlar. Ancak kişisel bir kayda göre, "ikili düzenleyicinin" dengede kafa karıştırıcı olduğu konusunda hemfikir olacağım.


58

İkili editör ekranı (ikili olarak)

00000000 | 11111011 11111011 11111011 11111011 11110101 11111011 11111011 11111011
00001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00010000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00011000 | 11110101 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00100000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00101000 | 11111011 11111011 11101111 11111011 11111011 11111011 11111011 11111011
00110000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00111000 | 11111011 11111011 11111011 11101111 11111011 11111011 11111011 11111011
01000000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01010000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01011000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01100000 | 11111011 11111011 11111011 11111011 11111011 11101111 11111011 11111011
01101000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011

İkili editör ekranı (onaltılık olarak)

00 | fb fb fb fb f5 fb fb fb fb fb fb fb fb fb fb fb
10 | fb fb fb fb fb fb fb fb f5 fb fb fb fb fb fb fb 
20 | fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb fb 
30 | fb fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb 
40 | fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb 
50 | ef fb fb fb fb fb fb fb ef fb fb fb fb fb fb fb 
60 | fb fb fb fb fb ef fb fb fb fb fb fb fb fb fb fb

İkili bir editörün baytları ikili olarak kullanmanıza izin vermesi gerektiği doğrudur, ancak baz 2'yi gördüğünüz gibi kompakt rakamlar veremeyecek kadar küçüktür.

İkilik ham değil, temel iki değil

Genel olarak konuşursak, daha sonra ikili düzenleyicideki " ikili " temel ikiyi ifade etmiyor, aslında " metin editörü " nin zenginidir . Buradaki fark, metin editörlerinin metni gösterecek şekilde tasarlanmalarıdır; bu nedenle, basılmamış karakterler, yeni satırlar, kontrol listeleri, geçersiz utf-8 kod birimleri vb. Güvenli bir şekilde ele alınmasına gerek yoktur. Bir dosyayı açmak ve hemen kaydetmek sadece eylemi değiştirebilir (editörün iç dönüşümleri, arızalar nedeniyle).

İkili editörler ise, veriyi herhangi bir anlamsal olarak vermeye çalışmaz ve kullanıcının bunları bayt / bit / kelime akışı olarak güvenli bir şekilde ele almasına izin vermez.

Onaltılık editörler

Mükemmel ikili editör mümkün olan her ikili formatı bilecekti ve düzenlemenizi sağladı, fakat herkes kendi ikili formatını oluşturabildiğinden ve çok sık değiştiğinden, tüm formatları desteklemeyi denemek boşuna.
Bir editörün yapabileceği en iyi şey, baytların kendilerini göstermesidir, üstelik 16, onaltılık sayıların zaten tartışılan özellikleri nedeniyle çok kullanışlıdır!

Ayrıca deneyimli bir kullanıcı, okuduğunda zihinsel olarak kutuyu hex'e çevirebilir.
Onaltılı yazılan bir bayttan biraz ayarlamak / almak gerçekten bin kutusundaki bir bayttan kesinlikle daha fazla çaba gerektirmez.
Dürüst olmak gerekirse , okumayı ikiliden daha kolay hex buldum .


1
Farkı gösteren güzel örnekler. Aslında onları yan yana görmek altıgenleri çok daha güzel gösterir
DrZoo

1
@DrZoo Eğer bit alanları ile uğraşmazsanız, bu durumda ikili gösterim çok daha iyidir! en.wikipedia.org/wiki/Bit_field .
misha256

6
misha256: dürüst, onaltılık baktığımda - ikili görüyorum. "F" okuyorum ama beynim hemen "1111" diyor. Matrisi kompakt biçimde görüntülemek gibi. :)
tdrury

4
"Ham olarak ikili, iki temel değil, ikilik" i vurgulamak için +1
Kelvin

5
@tdrury iyi bir nokta, sanırım bir süre sonra nasıl ifade edildiğine bakılmaksızın neye ihtiyacınız olduğunu “görmeye” başlıyorsunuz. Haha, evet, Matrix! Bana okula gittiğim, makine dilini onaltılık ya da ondalık bir dilde mutlu bir şekilde kodlayan ve ikisi arasında serbestçe dönüştürebilen birini hatırlatıyor. Bütün op kodları ezbere biliyordu ve ilk dilindeki gibi bit alanları ve diğer paketlenmiş veri yapılarını gördü. Bunlar Commodore 64 günleri (çok daha basit günler) aklınızdaydı, ama yine de etkileyici bir yetenek.
misha256

15

Neden hex editörlerine ikili editörler denir?

Özet:

Bir Onaltılı Düzenleyici, ikili içeriği onaltılık biçimde görüntüleyerek ve bu onaltılı sayıların değiştirilmesine izin vererek doğrudan bir ikili dosyayı düzenlemek için kullanılır.

Notlar:

  • Hex Editors, verileri yorumlamaya çalışan diğer programlar yerine, bir dosyanın ham veri içeriğini düzenlemeye izin verir.

  • İkili Editörler veya Byte Editörler olarak da adlandırılan Hex Editors.

  • Onları İkili Editörler veya Bayt Editörleri olarak adlandırmak, editörler onaltılık sayıları değiştirdikleri ve ikili sayıları veya baytları değiştiremedikleri için gerçekten doğru değildir (elbette, temel dosya sayıları ve baytları dosya kaydedilmişse değişecektir)

Neden ikili kullanımı onaltılık olarak düzenliyoruz?

Onaltılık biçimde verileri görüntüleyerek ve onaltılık değerleri değiştirerek ikili dosyaları doğrudan görüntülemek veya düzenlemek / değiştirmek daha kolaydır.

  • İkili sayıları temsil etmenin uygun bir yolu onaltılık kullanmaktır.

  • Tarihsel olarak bilgisayarlar birleştirme dilinde programlanmıştır; burada kod, işlemci talimatlarını ve meta-ifadeleri (çeşitli yönergeler, sözde talimatlar ve sözde operasyonlar olarak bilinir), yorumlar ve verileri kullanarak yazılmıştır.

    • Kod bir assembler kullanılarak ikili hale çevrilir. İkili kod daha sonra bir işleme yüklenebilir ve çalıştırılabilir.

    • Kaynak kodu olmadan, programı doğrudan binary yerine onaltılık biçimde görüntüleyen bir düzenleyici kullanarak değiştirmek kolaydır.

  • İkili kod onaltılık çevrildiğinde insanlar tarafından daha kolay okunur.

    Örneğin, hangi bir sayı çiftinin ezberlenmesi veya başka birine okunması daha kolaydır?

    10110000 01100001
    

    Veya

    B0 61
    
  • Her onaltılık basamak, dört ikili basamağı (bit) gösterir. Bir onaltılık basamak bir sekizli veya baytın yarısı olan (8 bit) bir ucu temsil eder.

    Örneğin, bayt değerleri 0 ila 255 (ondalık) arasında değişebilir, ancak 00 ila FF aralığında iki onaltılık basamak olarak daha uygun şekilde gösterilebilir.

  • Onaltılık ayrıca bilgisayar belleği adreslerini temsil etmek için yaygın olarak kullanılır.


3
Ayrıca, Base 64'ü ezberlemek daha kolay gözükse de, Hex'e bağlı kalacağız çünkü 2 karakter ⇒ 1 byte eşleme özelliğine sahiptir.
PythonNut 22.06.2016

9

Çeşitli programlama dili ve işletim sistemi kurallarına göre, iki tür dosya vardır:

  • bir metin satırından oluşan, her satır bir basılabilir karakter grubundan oluşan (bazı kontrol karakterleri dahil) ve satır sonu ile sonlandırılan metin dosyaları
  • Bir metin dosyasında yasaklanan boş bayt dahil, keyfi bir bayt paketi içeren ikili dosyalar.

Metin editörleri metin dosyalarını açabilir, ikili editörlerin işlem gördüğü dosyalar üzerinde herhangi bir kısıtlama yoktur.

İkili editörlerin sıklıkla veriyi onaltılık alana girmesine izin verip vermesi, sadece bir kolaylıktır (genellikle ascii karakterlerinin de görüntülenmesini ve değiştirilmesine izin verir), yalnızca saf ikili olarak verileri görüntülemek verileri daha az okunaklı hale getirir.

Popüler bir ikili düzenleyici HexEdit olarak adlandırılır .

görüntü tanımını buraya girin

Haklı olarak hem bir ikili editör hem de onaltılık editör olarak kabul eder:

görüntü tanımını buraya girin

Verileri onaltılık olarak görüntülemek için değil, yalnızca metni görüntülemek için bir seçenek bile vardır

görüntü tanımını buraya girin


5

Bugün bilgisayarların büyük çoğunluğu üzerindeki dosyalar 8 bit bayttır . Bu genellikle bir dosyayı doğrudan düzenlerken birinin çalıştığı soyutlamadır.

Tabii ki, aslında bireysel veri bitlerini düzenlemek için bir fırsat vardır, ancak çoğu zaman değil. Bit 7 ayarı gibi genel bit seviyesi işlemlerinin hex ile kolayca yapılması kolaydır - 1000 0000 base2 = 80 base16 , eğer bir hex değeri 80 base2'nin altındaysa bit 7 açıktır ve 8 base16 eklenmesi onu ayarlayacaktır.

Onaltının bu tür etkinliklerle daha güçlü bir şekilde ilişkilendirilmesinin diğer nedenleri:

  • Bilinen değerleri görsel olarak tararken hex değerlerinin tanınması daha kolaydır. Örneğin , bir ASCII alanı olan 20 base16 = 32, ancak aynı değer 0010 0000 base2 , diğer boşa harcanan değerlerin bir seli arasında tanınması kolay değildir.

  • Bunu düzenli olarak kullanmanız gereken eski sistemler sınırlı ekran alanına sahip olabilir (ör. 40 sütun). Apple IIe ROM monitörü harika bir örnektir, hafızayı hex'e 40 sütunlu entegre videoya götürebilir ve değerleri 80x24 ekranda ikiliye genişletmek sizi hızlı bir şekilde odanızdan çıkaracak. Bu eski sistemler için, girilen ASCII'yi tekrar doğru değerlere dönüştürmek için yordamlar yazmak daha kolaydır. 4K RAM'in çok fazla bellek olduğu ve sistemlerin yalnızca ROM kadar sahip olabileceği önemli.

  • "Hex" kelimesi daha iyi ses verir, daha kısa ve yazması daha kolaydır.


5

İnsanlar onaltılık kullanırken, genellikle ikili düşünürler ve onaltılıyı bir kestirme notasyonu olarak kullanırlar.

On altı, 2'lik bir güçtür. Sekiz ayrıca iki kişiliktir. Böylece 16 ve 8, ikili yazının kısayol gösterimi için kullanılmıştır. İkili ve iki gücünün bir üssü arasında manuel dönüşüm kolaydır. Sadece bitleri hedef taban tarafından belirtilen boyutta gruplayın ve ardından ilgili basamağı kullanın.

Temel 8, sekizlik, birçok erken bilgisayar için popülerdi, bu yüzden Unix'in odsekizli bir dökümü komutu var. Her sekizli hane bir seferde 3 biti temsil eder. Ancak 8 bit bayt kullanan makineler için uygun değildi.

Onaltılık, kısa için altıgen, taban 16, basamak başına 4 bit'i temsil eder. Bu, bugünlerde daha yaygın olarak kullanılan bir sunumdur.


3

Bu, bilgisayarların bilgiyi nasıl sakladığı ile ilgilidir.

Bilgisayarların kullandığı 0ve 1verilerini temsil ettiği temel düzeyde , bunlara bit denir. Birlikte gruplanan sekiz bit bir bayttır. Onaltılık taban 16'dır, yani 16 karakter ( 0-9, A-F). Bir karakteri saklamak için 8 bit veya 1 bayt gerekir.

Bu yüzden onaltılık bir sayı 13( 19ondalık) 0001 0011ikili sayıdakiyle aynıdır . Onaltılık okumak ikiliden daha kolaydır.


2

Bildiğim en eski ikili editörler de sökümcüydü. Yani düzenleme yeteneği, çalıştırılabilir bir ikili dosyanın sökülmesi ve eklenmesi için bir yan üründü.

Böyle bir uygulamanın güzel bir örneği Hiew'dir.

Birleştirilmiş kod (birleştirme talimatları) genellikle onaltılık dizeler olarak gösterilir. Sanırım, modern karmaşa ortaya çıkıyor. İnsanlar sadece neyle uğraştıklarını bilmiyorlar.


2

Herhangi bir derlenmiş, çalıştırılabilir dosyaya (örneğin, Windows'taki bazı dosyalarda.exe gibi) bazen "ikili" olarak adlandırılır, çünkü işlemcinin doğrudan işlemesi gereken ikili düzeyde doğru olan makine düzeyinde kodda derlenir.

Yani bir ikiliyi düzenliyorsun. Bu sadece hex'de gösteriliyor, çünkü hex insanlar için faydalı.


Evet, ancak birçok veri dosyası da ikilidir. Uygun uygulama tarafından okunduklarında yerden ve çeviriden tasarruf ederler. Ayrıca, metin dosyaları bile sık sık şifrelenir veya sıkıştırılır ve bunları ikili dosya haline getirir.
Joe,

1

Sorularınıza tam anlamıyla cevap vereceğim.

İlk olarak, biraz açıklama. Elbette, onaltılık bir editör demek istiyorsun. Hex araçları 6 ve ondalık araçları 10 , yani onaltılık araçlar 16 . Bi 2 demektir . Söylediğiniz gibi, bunlar iki farklı tabandır, taban 16 ve taban 2, bunun anlamı onaltılık bir sayı tanımlamak için 16 yer tutucu eleman ve bir ikili sayı tanımlamak için sadece 2 eleman anlamına gelir.

Dedin ki,

If you actually search for "binary editor" on Google, you get hex editors.

Ve şimdi sorularınız için

Why is that? 

Bu kelimenin tam anlamıyla parçası. Google, çoğu insanın, aramalarının tatmin edici sonuçları olduğunu düşündüklerini döndürür. Makine öğrenme algoritmaları, "editör" dizgisi bağlamında "onaltılık" ve "hex" dizgilerini "ikili" ile ilişkilendirir. Çoğu kullanıcı "ikili" "düzenleyici" yi aradıktan sonra "hex" "editöründen memnun kaldıklarından, elde ettiğimiz şey budur. Aksi bir anlamı yoktur.

What is the connection?

Kelimenin tam anlamıyla, Google’ın hiçbir anlamı olmadığı için bir şey yok. Google ikili ve onaltılık arasındaki farkı bilmez, sadece insanların arama motorlarını nasıl kullandıklarını hesaplayabilir.

Onaltılık ve ikili arasındaki gerçek bağlantıyı soruyorsanız, yukarıdaki açıklamama geri dönersek, bir onaltılık öğe 16 olasılık veya 4 bit, ancak ikili öğe 2 olasılık veya 1 bit kodlar. Bir bayttaki 8 bitlik bilgiyi kodlamak için 2 onaltılık öğeye veya 8 ikili öğeye ihtiyacımız var. Böylece, ikili ya da onaltılık editörlerin aynı verileri kullandıklarından, birbirlerinin yerine kullanılabileceğini görebilirsiniz, çünkü bunlar sadece farklı görünümlerde.


1

Buna "ikili" denir çünkü bireysel bitleri değiştirmenize izin verirler.

Kullanıcı arayüzü genellikle onaltılık olarak çalışır çünkü daha uygundur - örneğin ffffe0007d13e650 ekranda olduğundan daha az yer kaplar 1111111111111111111000000000000001111101000100111110011001010000. (Bu bir hata ayıklama sorunundan kaynaklanan gerçek bir adres, telafi edilmiş bir örnek değil.) Onaltılı koddaki ascii veya Unicode karakterleri gibi şeyleri "görmek" daha kolaydır.

Ancak, eğer gerçekten istiyorsanız, çoğu size ikili bitleri göstermeye geçecektir.

(Neden park halinde sürüyoruz, araba yolunda park ediyoruz? Sadece kelimeler. İngilizce genellikle gariptir.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.