ขึ้นอยู่กับว่าคุณใช้อะไรในการแยกวิเคราะห์ ใครๆ ก็เถียงได้ว่ามันถูกต้องสมบูรณ์ที่จะละทิ้งเลขศูนย์นำหน้า และนั่นคือสิ่งที่เราทำเกือบตลอดเวลาเพราะไม่มีคำจำกัดความว่าควรมีตัวเลขกี่หลัก
อย่างไรก็ตาม หากเราข้ามส่วนที่เกี่ยวกับว่าสิ่งนี้ไม่ถูกต้องและทำไมหรือไม่ และถาม "ฉันจะได้สิ่งนี้ในรูปแบบที่ต้องการได้อย่างไร" แทน เราก็สามารถให้คำตอบได้
ในกรณีนี้ isc มีบทความ KB เกี่ยวกับเรื่องนี้
นี่ไม่ใช่จุดบกพร่อง ปัญหาคือฟังก์ชัน binary-to-ascii ไม่ "รู้" อะไรเกี่ยวกับการใช้เลขฐานสองที่แปลงแล้ว และเป็นเรื่องปกติที่จะใส่เลขศูนย์นำหน้าเมื่อพิมพ์ค่าตัวเลข
อย่างไรก็ตาม ด้วยการปรับแต่งเพิ่มเติมเล็กน้อย ก็ยังเป็นไปได้ที่จะได้ผลลัพธ์ที่ต้องการ:
ตั้ง foo = concat (
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,1,1))),2), ":",
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,2,1))),2), ":",
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,3,1))),2), ":",
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,4,1))),2), ":",
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,5,1))),2), ":",
คำต่อท้าย (concat ("0", binary-to-ascii (16, 8, "", สตริงย่อย (ฮาร์ดแวร์,6,1))),2)
);
(ดำเนินการโดยการแปลง "คอมโพเนนต์" แต่ละรายการแยกจากกัน เพิ่มศูนย์นำหน้าเข้าไป (ในกรณีที่จำเป็นต้องใช้) นำอักขระฐานสิบหกสองตัวสุดท้ายมาต่อเข้าด้วยกันอีกครั้ง)