Mengapa hex editor disebut editor biner?

84

Hex dan binary adalah dua basis yang berbeda. Hex, dalam pemahaman saya, adalah versi biner yang lebih mudah digunakan dan lebih nyaman.

Namun, saya sering mendengar bahwa hex editor adalah editor biner. Jika Anda mencari "editor biner" di Google, Anda mendapatkan hex editor.

Joseph A.
sumber
3
Hex adalah representasi data biner yang terbaca.
Salman A

Jawaban:

188

Sebuah Editor biner mengedit file sebagai file biner .

File biner - Wikipedia

Sebuah file biner adalah file komputer yang tidak file teks. Istilah "file biner" sering digunakan sebagai istilah yang berarti "file non-teks" [dan] biasanya dianggap sebagai urutan byte. ... File biner biasanya berisi byte yang dimaksudkan untuk ditafsirkan sebagai sesuatu selain karakter teks.

Sebuah hex editor adalah jenis redaksi biner dimana data direpresentasikan sebagai heksadesimal .

Editor hex - Wikipedia

Sebuah hex editor (atau binary editor file atau byte Editor ) adalah jenis program komputer yang memungkinkan untuk manipulasi data biner mendasar yang merupakan file komputer. Nama 'hex' berasal dari 'hexadecimal': representasi standar untuk angka yang memiliki 16 sebagai dasarnya.

Steven
sumber
85

Terminologi itu sulit. Orang yang berbeda memiliki segala macam nama untuk berbagai hal.

Dalam contoh ini, tampak bahwa hex dalam "hex editor" merujuk pada representasi konvensional yang dapat dibaca manusia dari setiap byte, sedangkan biner dalam "binary editor" mengacu pada gagasan bahwa Anda memang mengedit file pada byte. layer (dan komputer menyimpan byte dalam biner), tanpa pertimbangan untuk pengkodean teks tingkat tinggi dan sejenisnya. Ingatlah bahwa file yang tidak mudah diwakili dalam bentuk teks tingkat tinggi disebut "file biner" atau "binari", karena alasan yang sama.

Secara teknis tidak salah; mereka hanya datang pada masalah penamaan dari sudut yang berbeda. Pada catatan pribadi, saya cenderung setuju bahwa "editor biner" membingungkan keseimbangan.

Lightness Races di Orbit
sumber
58

Tampilan editor biner (dalam biner)

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

Tampilan editor biner (dalam heksadesimal)

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

Memang benar bahwa editor biner harus membiarkan Anda menangani byte dalam biner, tetapi karena Anda dapat melihat basis 2 terlalu kecil untuk memberikan angka kompak.

Biner sebagai mentah, bukan basis dua

Secara umum, maka " biner " dalam editor biner tidak merujuk ke basis dua, itu sebenarnya adalah antonim dari " editor teks ".
Perbedaannya adalah bahwa editor teks dirancang untuk menampilkan teks, sehingga karakter yang tidak dicetak, baris baru, karakter kontrol, unit kode utf-8 yang tidak valid dan sebagainya tidak perlu ditangani dengan aman.
Tindakan membuka file dan segera menyimpannya dapat mengubahnya (karena konversi internal editor, kegagalan).

Editor biner di sisi lain, jangan mencoba memberikan data semantik apa pun dan biarkan pengguna dengan aman menanganinya sebagai aliran byte / bit / kata.

Editor heksadesimal

Editor biner yang sempurna akan mengetahui setiap format biner yang memungkinkan dan memungkinkan Anda mengeditnya, tetapi karena semua orang dapat membuat format binernya sendiri dan karena mereka sangat sering berubah, sia-sia mencoba untuk mendukung semua format.
Hal terbaik yang bisa dilakukan seorang editor adalah menunjukkan byte itu sendiri, dan karena, sudah dibahas, properti basis 16, angka heksadesimal sangat berguna!

Juga pengguna yang berpengalaman dapat menerjemahkan bin ke hex secara mental saat mereka membacanya.
Mengatur / mengeluarkan bit dari byte yang ditulis dalam hex benar-benar tidak lebih dari byte yang ditulis dalam bin.
Sejujurnya saya menemukan hex lebih mudah daripada biner untuk dibaca.

Margaret Bloom
sumber
1
Contoh yang bagus menunjukkan perbedaan. Sebenarnya melihat mereka berdampingan membuat hex terlihat jauh lebih baik
DrZoo
1
@DrZoo Kecuali jika Anda berurusan dengan bit-bidang, dalam hal ini representasi biner jauh lebih baik! en.wikipedia.org/wiki/Bit_field .
misha256
6
misha256: jujur, ketika saya melihat hex - saya melihat biner. Saya membaca "f" tetapi otak saya langsung mengatakan "1111". Ini seperti melihat matriks dalam bentuk yang ringkas. :)
tdrury
4
+1 untuk menekankan "Biner sebagai mentah, bukan basis dua"
Kelvin
5
@tdrury good point, saya kira setelah beberapa saat Anda baru saja mulai "melihat" apa yang perlu Anda lihat terlepas dari bagaimana itu diungkapkan. Haha, yeah, Matrix! Mengingatkan saya pada seorang pria yang bersekolah dengan bahasa mesin yang bahagia dengan hex atau desimal dan dapat mengkonversi secara bebas di antara keduanya. Dia tahu semua op-code dengan hati dan melihat bit-field dan struktur data dikemas lainnya seperti itu adalah bahasa pertamanya. Itu adalah Commodore 64 hari pikiran Anda (hari yang jauh lebih sederhana), tetapi masih bakat yang mengesankan.
misha256
15

Mengapa hex editor disebut editor biner?

Ringkasan:

Hex Editor digunakan untuk secara langsung mengedit file biner dengan menampilkan konten biner dalam format heksadesimal dan memungkinkan angka-angka heksadesimal ini diubah.

Catatan:

  • Hex Editor memungkinkan pengeditan konten data mentah dari suatu file, bukan program lain yang berupaya menginterpretasikan data.

  • Hex Editor sebagai juga disebut Editor Biner atau Editor Byte.

  • Menyebutnya Binary Editor atau Byte Editor tidak benar-benar benar karena editor mengubah angka heksadesimal dan bukan angka atau byte biner (tentu saja angka dan byte biner yang mendasarinya akan berubah jika file disimpan)

Mengapa kita mengedit biner menggunakan heksadesimal?

Lebih mudah untuk langsung melihat atau mengedit / memodifikasi file biner dengan menampilkan data dalam bentuk heksadesimal dan mengubah nilai-nilai heksadesimal.

  • Salah satu cara mudah untuk merepresentasikan angka biner adalah menggunakan heksadesimal.

  • Secara historis komputer diprogram dalam bahasa assembly, di mana kode ditulis menggunakan instruksi prosesor dan meta-statement (dikenal dengan berbagai arahan, pseudo-instructions dan pseudo-ops), komentar dan data.

    • Kode diterjemahkan ke dalam biner menggunakan assembler. Kode biner kemudian dapat dimuat ke dalam proses dan dieksekusi.

    • Tanpa kode sumber, lebih mudah untuk memodifikasi program secara langsung menggunakan editor yang menampilkan program dalam heksadesimal daripada biner.

  • Kode biner lebih mudah dibaca oleh manusia ketika dikonversi menjadi heksadesimal.

    Misalnya, pasangan nomor mana yang lebih mudah dihafal atau dibacakan kepada orang lain?

    10110000 01100001
    

    Atau

    B0 61
    
  • Setiap digit heksadesimal mewakili empat digit biner (bit). Satu digit heksadesimal mewakili sebuah nibble, yang merupakan setengah dari oktet atau byte (8 bit).

    Misalnya, nilai byte dapat berkisar dari 0 hingga 255 (desimal), tetapi mungkin lebih mudah direpresentasikan sebagai dua digit heksadesimal dalam kisaran 00 hingga FF.

  • Heksadesimal juga biasa digunakan untuk merepresentasikan alamat memori komputer.

DavidPostill
sumber
3
Juga perhatikan bahwa, sementara Basis 64 mungkin tampak lebih mudah untuk dihafal, kami tetap menggunakan Hex karena ia memiliki properti pemetaan 2 karakter yang bagus ⇒ 1 byte.
PythonNut
9

Menurut beberapa bahasa pemrograman dan konvensi sistem operasi, ada dua jenis file:

  • file teks yang terbuat dari serangkaian baris teks, setiap baris terdiri dari serangkaian karakter yang dapat dicetak (termasuk beberapa karakter kontrol) dan diakhiri pada akhir baris
  • file biner yang berisi rangkaian byte acak termasuk byte nol yang dilarang dalam file teks.

Editor teks dapat membuka file teks sementara editor biner tidak memiliki batasan pada jenis file yang mereka proses.

Fakta bahwa editor biner sering mewakili dan memungkinkan memasukkan data dalam heksadesimal hanya kenyamanan (mereka sering menampilkan dan memungkinkan mengganti karakter ascii juga), hanya menampilkan data dalam biner murni akan membuat data kurang terbaca.

Editor biner populer bernama HexEdit .

masukkan deskripsi gambar di sini

Itu benar menganggap dirinya editor biner dan editor hex:

masukkan deskripsi gambar di sini

Bahkan ada opsi untuk tidak menampilkan data dalam hex tetapi hanya teks

masukkan deskripsi gambar di sini

Jlliagre
sumber
5

File pada sebagian besar, jika semua, komputer saat ini adalah byte 8-bit . Biasanya itu adalah abstraksi yang berfungsi saat mengedit file secara langsung.

Tentu saja, ada kesempatan untuk benar-benar mengedit bit data individual, tetapi tidak sering. Operasi level bit umum seperti pengaturan bit 7 mudah dilakukan dengan hex - 1000 0000 base2 = 80 base16 , jadi jika nilai hex di bawah 80 base2 bit 7 jelas dan menambahkan 8 base16 akan mengaturnya.

Alasan lain mengapa hex lebih kuat terkait dengan jenis kegiatan ini:

  • Nilai hex lebih mudah dikenali saat memindai nilai-nilai yang diketahui. Sebagai contoh, 20 base16 = 32 yang merupakan ruang ASCII, tetapi nilai yang sama 0010 0000 base2 tidak begitu mudah dikenali di antara banjir nilai-nilai dump lainnya.

  • Sistem lama di mana Anda benar-benar perlu menggunakan ini secara teratur mungkin memiliki ruang layar yang terbatas (mis. 40 kolom). Monitor Apple IIe ROM adalah contoh yang bagus, dapat membuang memori dalam hex ke video terintegrasi 40-kolom, dan memperluas nilai ke biner pada layar 80x24 akan membuat Anda keluar dari ruangan dengan cepat. Untuk sistem lama ini, juga lebih mudah untuk menulis rutin untuk mengonversi ASCII yang dimasukkan kembali ke nilai yang benar. Penting di mana 4K RAM dianggap banyak memori dan sistem mungkin hanya memiliki ROM sebanyak mungkin.

  • Kata "hex" terdengar lebih baik, lebih pendek, dan lebih mudah untuk diketik.

LawrenceC
sumber
5

Ketika orang menggunakan hex, mereka biasanya berpikir dalam biner dan menggunakan hex sebagai notasi singkat.

Enam belas adalah kekuatan 2. Delapan juga kekuatan dua. Jadi 16 dan 8 telah digunakan untuk notasi singkat biner. Konversi manual antara biner, dan basis beberapa kekuatan dua adalah mudah. Kelompokkan bit-bit itu bersama-sama dalam ukuran yang ditunjukkan oleh basis target, dan kemudian gunakan angka yang sesuai.

Basis 8, oktal, populer di banyak komputer awal, itulah sebabnya Unix memiliki odperintah dump octal. Setiap digit oktal mewakili 3 bit sekaligus. Tapi itu tidak nyaman untuk mesin berdasarkan 8 bit byte.

Heksadesimal, hex untuk pendek, basis 16, mewakili 4 bit per digit. Ini adalah representasi yang lebih umum digunakan hari ini.

diinfiks
sumber
3

Ini merujuk pada bagaimana komputer menyimpan informasi.

Pada tingkat dasar komputer menggunakan 0dan 1untuk merepresentasikan data, ini disebut bit. Delapan bit yang dikelompokkan bersama adalah satu byte. Heksadesimal adalah basis 16 yang artinya memiliki 16 karakter ( 0-9, A-F). Untuk menyimpan karakter, dibutuhkan 8 bit atau 1 byte.

Jadi angka heksadesimal 13( 19dalam desimal) sama dengan 0001 0011dalam biner. Lebih mudah membaca hex daripada biner.

Burgi
sumber
2

Editor biner paling awal yang saya tahu juga disassembler. Artinya, kemampuan pengeditan adalah produk sampingan dari pembongkaran dan penambalan file biner yang dapat dieksekusi.

Contoh yang bagus dari aplikasi tersebut adalah Hiew.

Kode assembled (instruksi assembler) sering direpresentasikan sebagai string heksadesimal. Saya pikir, di sinilah kebingungan modern muncul. Orang-orang tidak tahu, apa yang mereka hadapi.

AnrDaemon
sumber
2

Setiap file yang dikompilasi dan dapat dijalankan (seperti somefile.exe, misalnya, pada Windows) kadang-kadang disebut "biner", karena file tersebut dikompilasi ke dalam kode tingkat mesin yang benar pada tingkat biner yang akan dijalankan oleh prosesor secara langsung.

Jadi, Anda mengedit biner. Itu hanya akan ditampilkan dalam hex karena hex berguna untuk manusia.

Mike Gillis
sumber
Ya, tetapi banyak file data juga biner. Mereka menghemat ruang dan terjemahan ketika dibaca oleh aplikasi yang sesuai. Juga, bahkan file teks sering dienkripsi atau dikompresi menjadikannya file biner.
Joe
1

Saya akan menjawab pertanyaan Anda secara harfiah.

Pertama, sedikit klarifikasi. Maksud Anda, tentu saja, editor heksadesimal. Hex berarti 6 dan desimal berarti 10 , jadi heksadesimal berarti 16 . Bi artinya 2 . Seperti yang Anda katakan ini adalah dua basis yang berbeda, basis 16 dan basis 2, yang berarti dibutuhkan 16 elemen placeholder untuk menentukan angka heksadesimal dan hanya 2 elemen untuk menentukan angka biner.

Anda mengatakan itu,

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

Dan sekarang untuk pertanyaan Anda,

Why is that? 

Ini adalah bagian literal. Google mengembalikan apa yang oleh kebanyakan orang dianggap sebagai hasil pencarian mereka yang memuaskan. Algoritma pembelajaran mesin mereka mengaitkan string "hexadecimal" dan "hex" dengan "binary" dalam konteks string "editor". Karena sebagian besar pengguna puas dengan "hex" "editor" setelah mereka mencari "binary" "editor", itulah yang kami dapatkan. Tidak ada artinya sebaliknya.

What is the connection?

Secara harfiah lagi, tidak ada karena Google tidak mengembalikan makna. Google tidak tahu perbedaan antara biner dan heksadesimal, itu hanya bisa membuat tabulasi bagaimana orang menggunakan mesin pencari mereka.

Jika Anda meminta koneksi nyata antara heksadesimal dan biner, kemudian kembali ke klarifikasi saya di atas, satu elemen heksadesimal mengkodekan 16 kemungkinan atau 4 bit, tetapi elemen biner mengkodekan 2 kemungkinan atau 1 bit. Untuk mengkodekan 8 bit informasi dalam satu byte, kita memerlukan 2 elemen heksadesimal atau 8 elemen biner. Jadi Anda dapat melihat bahwa editor biner atau heksadesimal dapat digunakan secara bergantian karena mereka mewakili data yang sama, hanya dalam tampilan yang berbeda.

r3mnant
sumber
1

Mereka disebut "biner" karena mereka membiarkan Anda mengubah bit individual.

UI biasanya berfungsi dalam hex secara default karena lebih nyaman - mis. ffffe0007d13e650 Memakan lebih sedikit ruang pada layar daripada 1111111111111111111000000000000001111101000100111110011001010000. (Itu alamat aktual dari masalah debugging, bukan contoh dibuat-buat.) Lebih mudah untuk "melihat" hal-hal seperti karakter ascii atau Unicode dalam kode hex juga.

Tetapi sebagian besar dari mereka akan beralih untuk menunjukkan kepada Anda bit biner jika Anda benar-benar menginginkannya.

(Mengapa kita berkendara di parkway tetapi park di jalan masuk? Itu hanya kata-kata. Bahasa Inggris sering aneh.)

Jamie Hanrahan
sumber