เมื่อต้องจัดการกับไฟล์ที่แปลกประหลาด การตรวจสอบบิตจริงที่ประกอบเป็นไฟล์นั้นจะมีค่ามาก หากไม่ใช่เพื่ออะไรก็ตาม คุณก็อ่านส่วนหัวของไฟล์และถอดรหัสวัตถุประสงค์ของมันได้ การแก้ไขโค้ดฐานสิบหกเป็นเรื่องที่ซับซ้อน แต่สามารถทำได้ด้วยโปรแกรมแก้ไขฐานสิบหกหลายตัวใน macOS โค้ดฐานสิบหกคืออะไร และทำไมจึงคุ้มค่าที่จะตรวจสอบมัน?
โค้ดฐานสิบหกคืออะไร?
ในด้านคอมพิวติ้ง ฐานสิบหกให้วิธีที่กระชับมากกว่าในการแสดงค่าบाइनนารี มันใช้ระบบเลขฐาน 16 แทนฐาน 2 ของบाइनนารี เนื่องจากช่วงตัวเลขที่ใหญ่กว่า ตัวเลขบाइनนารีหลายหลักจึงแสดงในหลักฐานสิบหกเพียงหลักเดียว ตัวเลขฐานสิบหกแต่ละตัวแสดงบิตบाइनนารี 4 บิต หากคุณจำบाइनนารีได้ คุณจะรู้ว่าครึ่งไบต์มีค่าที่เป็นไปได้ 16 ค่า — เท่ากับจำนวนค่าที่ตัวเลขฐานสิบหกสามารถมีได้ ตรวจสอบตารางด้านล่างเพื่อดูค่าเทียบเท่า

รวมตัวเลขฐานสิบหกสองตัว และคุณจะแสดงข้อมูล 8 บิตได้ นั่นเทียบเท่ากับหนึ่งไบต์ที่มีค่าที่เป็นไปได้ 256 ค่า ไบต์เดี่ยวมีช่วงจาก 0000 0000 ถึง 1111 1111 ในฐานสิบหกคือ 00 ถึง FF ตามลำดับ โดยการเขียนค่าฐานสิบหกเป็นชุดของคู่ คุณสามารถ "แยก" ข้อมูลบाइनนารีของไฟล์เป็นไบต์ได้อย่างง่ายดาย
โดยปฐมฐาน ฐานสิบหกและบाइनนารีให้ "เฟรม" ที่ต่างกันสำหรับข้อมูลพื้นฐานเดียวกัน มนุษย์อ่านฐานสิบหกง่าย ในขณะที่คอมพิวเตอร์อ่านบाइनนารีง่าย
ข้อตกลงในการอ่านและเขียนค่าฐานสิบหก
เมื่อเขียนค่าฐานสิบหก ตัวอักษร 0x อาจนำหน้าค่า ตัวอักษรเหล่านี้ระบุว่าค่าต่อไปเป็นฐานสิบหก เนื่องจากฐานสิบหก บाइनนารี และออคทัลอาจดูเหมือนกันใน מבטแรก คำนำหน้าสำรองนี้จึงช่วยป้องกันความสับสนและลดข้อผิดพลาด
ตัวอย่างเช่น 0x2FF0C4 อธิบายที่อยู่ฐานสิบหกในหน่วยความจำเทียบเท่าค่าบाइनนารี 0010 1111 1111 0000 1100 0100 และค่าทศนิยม 3,141,828 เฉพาะ 2FF0C4 เท่านั้นที่นับเป็นส่วนของค่า ตัวอักษรนำหน้า 0x เพียงระบุระบบตัวเลข
เมื่อเอกสารทั้งหมดถูกประมวลผลเป็นฐานสิบหก ค่าจะแสดงเป็นคู่ เช่น FF A0 2D CE ซึ่งแยกค่าเป็นสตริงยาวหนึ่งไบต์อย่างช่วยเหลือ ทำให้มนุษย์แยกวิเคราะห์ได้ง่ายขึ้น
การดูและแก้ไขโค้ดฐานสิบหกบน macOS
คุณจะต้องใช้แอปพลิเคชันดูฐานสิบหกเพื่อดูโค้ดฐานสิบหกบน macOS มีตัวเลือกฟรี 몇 ตัว
- 0xED เป็นเอนโค้ดเดอร์ฟรีและเรียบง่ายที่เสนอตัวเลือกปรับแต่งบ้าง แอปพลิเคชันนี้มุ่งเน้นการตีความค่าฐานสิบหกที่ชัดเจนและรวดเร็ว มันเป็นเครื่องมือพื้นฐานแต่เป็นประโยชน์สำหรับการแนะนำตัวแก้ไขฐานสิบหก

- Synalyze It! เป็นตัวแปลฐานสิบหกระดับมืออาชีพ ที่ต้องเสียค่าใช้จ่าย มีการเข้าสีของค่าสำหรับการวิเคราะห์ไฟล์แบบรูปภาพ ยังมีที่เก็บ "ไวยากรณ์" จำนวนมหาศาล ที่นำโครงสร้างไฟล์ที่รู้จักมาใช้กับโค้ดฐานสิบหก เฟรมเหล่านี้ช่วยให้คุณเข้าใจ ตีความ ค้นหา และแก้ไขโค้ดฐานสิบหกได้

เมื่อคุณมีแอปพลิเคชันใดแอปหนึ่ง คุณสามารถเปิดไฟล์ใดก็ได้เพื่อดูโค้ดบाइनนารีพื้นฐานที่นำเสนอในค่าฐานสิบหก นี่มีประโยชน์มากกว่าสำหรับบางประเภทของไฟล์ แต่ในกรณีส่วนใหญ่ คุณจะเห็นค่าฐานสิบหกทางซ้ายพร้อมกับการตีความ ASCII ของค่าเหล่านั้นทางขวา ด้วยวิธีนี้คุณจึง "อ่าน" ไฟล์และเริ่มเข้าใจสิ่งที่กำลังเกิดขึ้น
ตัวแก้ไขฐานสิบหกยังสามารถแก้ไขโค้ดฐานสิบหกได้ แต่ไม่ได้ง่ายเท่าการแก้ไขข้อความ — และไม่ได้ยอมรับข้อผิดพลาดเท่าที่นัก ตัวแก้ไขฐานสิบหกแก้ไขโค้ดเป็นคู่ยาวหนึ่งไบต์ เขียนทับและแทนที่สองค่าพร้อมกัน หากคุณไม่ระมัดระวังมากพอ คุณอาจทำลายไฟล์ที่ทำงานได้ในทันที เพื่อป้องกันความเปราะบางนี้ ให้ทำซ้ำไฟล์เสมอก่อนแก้ไขโค้ดฐานสิบหกของมัน
สรุป: ตัวแก้ไขฐานสิบหกใช้ทำอะไร?
การเปิดไฟล์สุ่มในตัวแก้ไขฐานสิบหกอาจสนุก แต่มันไม่ค่อยมีประโยชน์ มีช่วงสถานการณ์แคบๆ ที่ตัวแก้ไขฐานสิบหกแสดงคุณค่าของมัน หากคุณต้องดูและแก้ไขโค้ดบाइनนารี ตัวแก้ไขฐานสิบหกคือเครื่องมือที่ดีที่สุดสำหรับงานนี้
ตัวอย่างเช่น ขณะเขียนโปรแกรมที่ส่งออกข้อมูลบाइनนารี คุณควรตรวจสอบไฟล์ด้วยตนเพื่อคุณภาพ พวกมันยังช่วยกู้คืนหรือวิเคราะห์ไฟล์ของบุคคลที่สามที่เสียหายได้ ตัวแก้ไขฐานสิบหกเปิดไฟล์ใดก็ได้ ไม่ว่าจะเสียหายหรือไม่ถูกต้อง นั่นหมายความว่าคุณบางครั้งสามารถ "แก้ไข" ไฟล์ที่เสียหายด้วยตัวแก้ไขฐานสิบหก หรืออย่างน้อยก็ระบุสาเหตุของข้อผิดพลาด หากคุณต้องทำการแก้ไขที่แม่นยำกับไฟล์ระบบ เช่น การเปลี่ยนที่อยู่หน่วยความจำใน kext ตัวแก้ไขฐานสิบหกคือเครื่องมือเพียงตัวเดียวสำหรับงานนี้ เนื่องจากประโยชน์ที่แพร่หลาย ผู้ที่สนใจในรายละเอียดของคอมพิวติ้งและการเขียนโปรแกรมควรคุ้นเคยกับตัวแก้ไขฐานสิบหก