ฐานสิบหกและเลขฐานสองเป็นฐานที่แตกต่างกัน Hex ในความเข้าใจของฉันมันเป็นไบนารีที่ใช้ง่ายกว่าและสะดวกกว่า
อย่างไรก็ตามฉันมักจะได้ยินว่าตัวแก้ไขเลขฐานสิบหกเป็นตัวแก้ไขแบบไบนารี หากคุณค้นหา "ตัวแก้ไขไบนารี" บน Google คุณจะได้รับตัวแก้ไขฐานสิบหก
ฐานสิบหกและเลขฐานสองเป็นฐานที่แตกต่างกัน Hex ในความเข้าใจของฉันมันเป็นไบนารีที่ใช้ง่ายกว่าและสะดวกกว่า
อย่างไรก็ตามฉันมักจะได้ยินว่าตัวแก้ไขเลขฐานสิบหกเป็นตัวแก้ไขแบบไบนารี หากคุณค้นหา "ตัวแก้ไขไบนารี" บน Google คุณจะได้รับตัวแก้ไขฐานสิบหก
คำตอบ:
แก้ไขไบนารีแก้ไขไฟล์เป็นเป็นแฟ้มไบนารี
แฟ้มไบนารีเป็นไฟล์คอมพิวเตอร์ที่ไม่ได้เป็นแฟ้มข้อความ คำว่า "ไฟล์ไบนารี" มักจะใช้เป็นคำที่หมายถึง "ไฟล์ที่ไม่ใช่ข้อความ" [และ] มักจะคิดว่าเป็นลำดับของไบต์ ... โดยทั่วไปไฟล์ไบนารี่จะมีจำนวนไบต์ที่ตั้งใจจะตีความเป็นอย่างอื่นที่ไม่ใช่ตัวอักษร
แก้ไข hexเป็นประเภทของแก้ไขไบนารีที่ข้อมูลจะแสดงเป็นเลขฐานสิบหก
แก้ไข hex (หรือไบนารีแก้ไขไฟล์หรือแก้ไขไบต์ ) เป็นชนิดของโปรแกรมคอมพิวเตอร์ที่ช่วยให้การจัดการของข้อมูลไบนารีพื้นฐานที่ถือว่าเป็นไฟล์คอมพิวเตอร์ ชื่อ 'hex' มาจาก 'เลขฐานสิบหก': การแทนค่ามาตรฐานสำหรับตัวเลขที่มี 16 เป็นฐาน
คำศัพท์ยาก คนต่างมีชื่อต่าง ๆ กันทุกอย่าง
ในตัวอย่างนี้ปรากฏว่าตัวเลขฐานสิบหกใน "ตัวแก้ไขฐานสิบหก" หมายถึงการแสดงแบบธรรมดาที่มนุษย์สามารถอ่านได้ของค่าของแต่ละไบต์ในขณะที่ไบนารีใน "ตัวแก้ไขไบนารี" หมายถึงความคิดที่ว่าคุณกำลังแก้ไขไฟล์ที่ไบต์ layer (และคอมพิวเตอร์เก็บข้อมูลไบต์เป็นไบนารี่) โดยไม่คำนึงถึงการเข้ารหัสข้อความในระดับที่สูงขึ้นและสิ่งที่คล้ายกัน จำได้ว่าไฟล์ที่ไม่สามารถแทนได้อย่างง่ายดายในรูปแบบข้อความระดับสูงจะเรียกว่า "ไฟล์ไบนารี" หรือ "ไบนารี" ด้วยเหตุผลเดียวกัน
ไม่ถูกต้องทางเทคนิค พวกเขาเพิ่งมาที่ปัญหาการตั้งชื่อจากมุมที่แตกต่าง อย่างไรก็ตามในบันทึกส่วนตัวฉันมักจะเห็นด้วยว่า "ตัวแก้ไขไบนารี" สร้างความสับสนในเรื่องความสมดุล
จอแสดงผลตัวแก้ไขไบนารี (ในไบนารี)
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
จอแสดงผลตัวแก้ไขไบนารี (เป็นเลขฐานสิบหก)
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
มันเป็นความจริงที่ตัวแก้ไขไบนารีควรอนุญาตให้คุณจัดการไบต์เป็นไบนารี่ แต่อย่างที่คุณเห็นว่าเบส 2 นั้นเล็กเกินไปที่จะให้ตัวเลขที่มีขนาดกะทัดรัด
โดยทั่วไปแล้ว " binary " ในโปรแกรมแก้ไขไบนารีไม่ได้อ้างอิงถึงฐานสอง แต่จริงๆแล้วมันคือ antonym ของ " text editor "
ความแตกต่างคือตัวแก้ไขข้อความถูกออกแบบมาเพื่อแสดงข้อความดังนั้นไม่ใช่อักขระการพิมพ์บรรทัดใหม่ตัวอักษรควบคุมหน่วยรหัส utf-8 ที่ไม่ถูกต้องและอื่น ๆ จึงไม่จำเป็นต้องได้รับการจัดการอย่างปลอดภัย
การเปิดไฟล์เพียงอย่างเดียวและการบันทึกทันทีสามารถเปลี่ยนได้ (เนื่องจากการแปลงภายในตัวแก้ไขความล้มเหลว)
บรรณาธิการไบนารีในทางอื่น ๆ อย่าพยายามให้ข้อมูลความหมายใด ๆ และให้ผู้ใช้จัดการได้อย่างปลอดภัยในรูปแบบของไบต์ / บิต / คำ
ตัวแก้ไขไบนารีที่สมบูรณ์แบบจะรู้จักรูปแบบไบนารีที่เป็นไปได้ทั้งหมดและให้คุณแก้ไขได้ แต่เนื่องจากทุกคนสามารถสร้างรูปแบบไบนารีของตัวเองและเนื่องจากพวกเขาเปลี่ยนแปลงบ่อยมาก
สิ่งที่ดีที่สุดที่ผู้แก้ไขสามารถทำได้คือการแสดงไบต์ด้วยตัวเองและเนื่องจากคุณสมบัติที่กล่าวถึงแล้วของ 16 ฐานเลขฐานสิบหกนั้นมีประโยชน์มาก!
นอกจากนี้ผู้ใช้ที่มีประสบการณ์สามารถแปลถังขยะเป็นฐานสิบหกในขณะที่พวกเขาอ่าน
การตั้งค่า / รับบิตของไบต์ที่เขียนใน hex จะไม่ต้องใช้ความพยายามใด ๆ เลยนอกจากไบต์ที่เขียนในถังขยะ
พูดตามตรงฉันพบว่าเลขฐานสิบหกง่ายกว่าอ่านไบนารี
สรุป:
ตัวแก้ไข Hex ใช้เพื่อแก้ไขไฟล์ไบนารีโดยตรงโดยการแสดงเนื้อหาไบนารีในรูปแบบเลขฐานสิบหกและอนุญาตให้เปลี่ยนเลขฐานสิบหกเหล่านี้
หมายเหตุ:
Hex Editors อนุญาตให้แก้ไขเนื้อหาข้อมูลดิบของไฟล์แทนที่จะเป็นโปรแกรมอื่นที่พยายามตีความข้อมูล
Hex Editors หรือที่เรียกว่า Binary Editors หรือ Byte Editors
การเรียกพวกมันว่า Binary Editors หรือ Byte Editors นั้นไม่ถูกต้องจริงๆเพราะตัวแก้ไขกำลังเปลี่ยนเลขฐานสิบหกไม่ใช่เลขฐานสองหรือไบต์
ทำไมเราถึงต้องใช้เลขฐานสิบหกเป็นเลขฐานสอง?
ง่ายต่อการดูหรือแก้ไข / แก้ไขไฟล์ไบนารีโดยตรงโดยการแสดงข้อมูลในรูปแบบเลขฐานสิบหกและเปลี่ยนค่าเลขฐานสิบหก
วิธีหนึ่งที่สะดวกในการแทนเลขฐานสองคือการใช้เลขฐานสิบหก
ในอดีตคอมพิวเตอร์ถูกตั้งโปรแกรมในภาษาแอสเซมบลีซึ่งโค้ดถูกเขียนโดยใช้คำสั่งของตัวประมวลผลและคำสั่งเมตาดาต้า
รหัสถูกแปลเป็นไบนารีโดยใช้แอสเซมเบลอร์ รหัสไบนารีนั้นสามารถโหลดเข้าสู่กระบวนการและดำเนินการ
หากไม่มีซอร์สโค้ดมันจะง่ายต่อการแก้ไขโปรแกรมโดยตรงโดยใช้โปรแกรมแก้ไขที่แสดงโปรแกรมเป็นเลขฐานสิบหกแทนที่จะเป็นไบนารี
มนุษย์สามารถอ่านรหัสไบนารีได้ง่ายขึ้นเมื่อแปลงเป็นเลขฐานสิบหก
ตัวอย่างเช่นหมายเลขคู่ใดที่จำและอ่านให้คนอื่นได้ง่ายกว่ากัน
10110000 01100001
หรือ
B0 61
เลขฐานสิบหกแต่ละหลักแสดงถึงเลขฐานสองสี่หลัก (บิต) เลขฐานสิบหกหนึ่งหลักแทน nibble ซึ่งเป็นครึ่งหนึ่งของ octet หรือ byte (8 บิต)
ตัวอย่างเช่นค่าไบต์สามารถอยู่ในช่วงตั้งแต่ 0 ถึง 255 (ฐานสิบ) แต่อาจแสดงได้อย่างสะดวกกว่าเป็นเลขฐานสิบหกสองหลักในช่วง 00 ถึง FF
เลขฐานสิบหกยังใช้เพื่อแสดงที่อยู่หน่วยความจำคอมพิวเตอร์
ตามภาษาการเขียนโปรแกรมและข้อตกลงของระบบปฏิบัติการมีไฟล์สองชนิด:
โปรแกรมแก้ไขข้อความสามารถเปิดไฟล์ข้อความได้ในขณะที่โปรแกรมแก้ไขไบนารีนั้นไม่มีข้อ จำกัด เกี่ยวกับประเภทของไฟล์ที่ใช้
ความจริงไบนารีบรรณาธิการเป็นตัวแทนและอนุญาตให้ป้อนข้อมูลในเลขฐานสิบหกเป็นเพียงความสะดวกสบาย (พวกเขามักจะแสดงและอนุญาตให้แทนที่ตัวอักษร ASCII เกินไป) เพียงการแสดงข้อมูลในไบนารีบริสุทธิ์จะทำให้ข้อมูลชัดเจนน้อยลง
แก้ไขไบนารีที่นิยมเป็นชื่อHexEdit
มันพิจารณาอย่างถูกต้องทั้งตัวแก้ไขไบนารีและตัวแก้ไขฐานสิบหก:
มีแม้กระทั่งตัวเลือกที่จะไม่แสดงข้อมูลเป็นฐานสิบหก แต่เป็นเพียงข้อความ
ไฟล์บนส่วนใหญ่ถ้าทั้งหมดของคอมพิวเตอร์ในวันนี้มี 8 บิตไบต์ โดยทั่วไปแล้วสิ่งที่เป็นนามธรรมจะทำงานด้วยเมื่อแก้ไขไฟล์โดยตรง
แน่นอนว่ามีบางครั้งที่จะแก้ไขข้อมูลแต่ละบิต แต่ไม่บ่อยนัก การดำเนินการระดับบิตทั่วไปทั่วไปเช่นการตั้งค่าบิต 7 นั้นทำได้ง่ายด้วย hex ต่อไป - 1000 0000 base2 = 80 base16ดังนั้นหากค่าฐานสิบหกต่ำกว่า 80 base2บิต 7 จะชัดเจนและการเพิ่ม 8 base16จะตั้งไว้
เหตุผลอื่น ๆ ที่ทำให้ hex มีความเกี่ยวข้องอย่างยิ่งกับกิจกรรมประเภทนี้:
ค่า Hex นั้นง่ายต่อการจดจำเมื่อทำการสแกนเพื่อหาค่าที่รู้จัก ตัวอย่างเช่น 20 base16 = 32 ซึ่งเป็นพื้นที่ ASCII แต่ค่าเดียวกัน 0010 0000 base2นั้นไม่ง่ายนักที่จะจดจำเช่นนี้ท่ามกลางค่าที่ทิ้งแล้วอื่น ๆ
ระบบเก่าที่คุณจำเป็นต้องใช้สิ่งนี้เป็นประจำอาจมีพื้นที่หน้าจอที่ จำกัด (เช่น 40 คอลัมน์) จอภาพ Apple IIe ROM เป็นตัวอย่างที่ยอดเยี่ยมสามารถถ่ายโอนข้อมูลหน่วยความจำในฐานสิบหกไปยังวิดีโอรวม 40 คอลัมน์และการขยายค่าไปยังไบนารีบนหน้าจอ 80x24 จะทำให้คุณออกจากห้องอย่างรวดเร็ว สำหรับระบบเก่าเหล่านี้ยังง่ายต่อการเขียนรูทีนเพื่อแปลง ASCII ที่ป้อนกลับไปเป็นค่าที่เหมาะสม สิ่งสำคัญที่ RAM ขนาด 4K ถือเป็นหน่วยความจำจำนวนมากและระบบอาจมี ROM ได้มากเท่านั้น
คำว่า "hex" จะดีกว่าสั้นกว่าและพิมพ์ง่ายกว่า
เมื่อผู้คนกำลังใช้เลขฐานสิบหกพวกเขามักจะคิดเลขฐานสองและใช้เลขฐานสิบหกเป็นสัญลักษณ์การจดชวเลข
สิบหกคือพลังของ 2 แปดและยังเป็นพลังของสอง ดังนั้น 16 และ 8 จึงถูกใช้สำหรับการจดชวเลขของไบนารี การแปลงด้วยตนเองระหว่างไบนารีและฐานกำลังสองบางอย่างง่ายดาย เพียงจัดกลุ่มบิตเข้าด้วยกันในขนาดที่ระบุโดยฐานเป้าหมายแล้วใช้ตัวเลขที่สอดคล้องกัน
Base 8, octal ได้รับความนิยมสำหรับคอมพิวเตอร์รุ่นแรก ๆ หลายเครื่องซึ่งเป็นสาเหตุที่ Unix มีod
คำสั่ง octal dump เลขฐานแปดแต่ละตัวแทน 3 บิตในแต่ละครั้ง แต่มันไม่สะดวกสำหรับเครื่องที่ใช้ 8 บิตไบท์
เลขฐานสิบหกฐานสิบหกสำหรับระยะสั้นฐาน 16 หมายถึง 4 บิตต่อหลัก นี่เป็นการนำเสนอที่ใช้กันอย่างแพร่หลายในทุกวันนี้
นี่หมายถึงวิธีที่คอมพิวเตอร์เก็บข้อมูล
ในคอมพิวเตอร์ระดับพื้นฐานใช้0
และ1
เพื่อแสดงข้อมูลเหล่านี้เรียกว่าบิต แปดบิตจัดกลุ่มเข้าด้วยกันเป็นไบต์ เลขฐานสิบหกคือฐาน 16 ซึ่งหมายความว่ามี 16 อักขระ ( 0-9
, A-F
) ในการจัดเก็บอักขระใช้เวลา 8 บิตหรือ 1 ไบต์
ดังนั้นเลขฐานสิบหก13
(เป็น19
ทศนิยม) จึงเหมือนกับ0001 0011
ในไบนารี ง่ายต่อการอ่าน hex มากกว่ามันเป็นเลขฐานสอง
บรรณาธิการไบนารีที่เก่าแก่ที่สุดที่ฉันรู้ว่ายังถูกถอดชิ้นส่วน ความหมายความสามารถในการแก้ไขเป็นผลพลอยได้จากการแยกส่วนและการแก้ไขของไฟล์ไบนารีที่ปฏิบัติการได้
ตัวอย่างที่ดีของแอปพลิเคชันดังกล่าวคือ Hiew
รหัสประกอบ (คำสั่งแอสเซมเบลอร์) มักแสดงเป็นสตริงเลขฐานสิบหก ฉันคิดว่านี่คือสิ่งที่เกิดความสับสนในปัจจุบัน ผู้คนแค่ไม่รู้ว่าพวกเขากำลังทำอะไร
ไฟล์ที่คอมไพล์และรันได้ (เช่น somefile.exe ตัวอย่างเช่นบน Windows) บางครั้งเรียกว่า "ไบนารี่" เนื่องจากถูกคอมไพล์ลงในรหัสระดับเครื่องซึ่งถูกต้องในระดับไบนารี่เพื่อประมวลผลโดยตรง
ดังนั้นคุณกำลังแก้ไขไบนารี มันเพิ่งเกิดขึ้นที่จะแสดงใน hex เพราะ hex เป็นประโยชน์สำหรับมนุษย์
ฉันจะตอบคำถามของคุณอย่างแท้จริง
ก่อนอื่นให้ชี้แจงเล็กน้อย แน่นอนว่าคุณเป็นบรรณาธิการเลขฐานสิบหก Hexหมายความ6และทศนิยมหมายถึง10ดังนั้นเลขฐานสิบหกหมายถึง16 Biหมายความว่า2 ดังที่คุณกล่าวว่าเหล่านี้เป็นสองฐานที่แตกต่างกันฐาน 16 และฐาน 2 ซึ่งหมายความว่าใช้องค์ประกอบตัวยึด 16 ตัวเพื่อกำหนดหมายเลขฐานสิบหกและเพียง 2 องค์ประกอบเพื่อกำหนดเลขฐานสอง
คุณพูดว่า,
If you actually search for "binary editor" on Google, you get hex editors.
และตอนนี้สำหรับคำถามของคุณ
Why is that?
นี่คือส่วนที่แท้จริง Google ส่งคืนสิ่งที่คนส่วนใหญ่คิดว่าเป็นผลการค้นหาที่น่าพอใจ อัลกอริธึมการเรียนรู้เครื่องของพวกเขาเชื่อมโยงสตริง "เลขฐานสิบหก" และ "ฐานสิบหก" กับ "ไบนารี" ภายในบริบทของสตริง "ตัวแก้ไข" เนื่องจากผู้ใช้ส่วนใหญ่พอใจกับ "hex" "editor" หลังจากพวกเขาค้นหา "binary" "editor" นั่นคือสิ่งที่เราได้รับ มันไม่มีความหมายเป็นอย่างอื่น
What is the connection?
แท้จริงไม่มีอีกแล้วตั้งแต่ Google กลับไม่มีความหมาย Google ไม่ทราบความแตกต่างระหว่างไบนารีและเลขฐานสิบหกมันสามารถจัดระเบียบว่าผู้คนใช้เครื่องมือค้นหาของพวกเขาอย่างไร
หากคุณกำลังขอการเชื่อมต่อที่แท้จริงระหว่างเลขฐานสิบหกและเลขฐานสองจากนั้นกลับไปที่การชี้แจงของฉันข้างต้นองค์ประกอบเลขฐานสิบหกหนึ่งเข้ารหัส 16 ความเป็นไปได้หรือ 4 บิต แต่องค์ประกอบไบนารีเข้ารหัส 2 ความเป็นไปได้หรือ 1 บิต ในการเข้ารหัสข้อมูล 8 บิตในหนึ่งไบต์เราต้องการองค์ประกอบเลขฐานสิบหก 2 ตัวหรือองค์ประกอบไบนารี 8 ตัว ดังนั้นคุณจะเห็นได้ว่าเครื่องมือแก้ไขไบนารีหรือเลขฐานสิบหกอาจใช้แทนกันเนื่องจากแสดงข้อมูลเดียวกันในมุมมองที่ต่างกัน
พวกเขาถูกเรียกว่า "binary" เพราะพวกเขาให้คุณเปลี่ยนบิตส่วนบุคคล
UI ที่มักจะทำงานในฐานสิบหกโดยปริยายเพราะมันสะดวกมากขึ้น - เช่นใช้พื้นที่น้อยบนหน้าจอกว่าffffe0007d13e650
1111111111111111111000000000000001111101000100111110011001010000
(นั่นคือที่อยู่จริงจากปัญหาการดีบักไม่ใช่ตัวอย่างที่สร้างขึ้น) มันง่ายกว่าที่จะ "ดู" สิ่งต่าง ๆ เช่น ascii หรืออักขระ Unicode ในรหัสฐานสิบหกด้วย
แต่ส่วนใหญ่จะสลับไปแสดงบิตไบนารี่ของคุณถ้าคุณต้องการให้มันเป็นจริง
(ทำไมเราขับรถบนถนนปาร์ค แต่จอดบนถนนรถแล่นมันเป็นเพียงคำศัพท์ภาษาอังกฤษมักจะแปลก)