Depinde de ce folosiți pentru a-l analiza, se poate argumenta că este complet valid să omiteți zerourile de prefix și asta facem de cele mai multe ori, deoarece nu există o definiție a câte cifre ar trebui să existe.
Cu toate acestea, dacă sărim peste partea despre dacă acest lucru este invalid și de ce sau nu și întrebăm în schimb „Cum obțin acest lucru în formatul dorit”, putem oferi un răspuns.
În acest caz isc are un articol KB despre asta
Acesta nu este un bug. Problema este că funcția binary-to-ascii nu „știe” nimic despre utilizarea intenționată a cifrelor binare convertite și este neobișnuit să includă zerouri la început la tipărirea valorilor numerice.
Cu toate acestea, cu puțină manipulare suplimentară, este încă posibil să obțineți rezultatul dorit:
set foo = concat (
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
sufix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
);
(Funcționează prin conversia fiecărei „componente” separat, adăugându-i un zero inițial (în cazul în care este nevoie de unul); luând ultimele două caractere hexadecimale și apoi concatenându-le pe toate împreună din nou.)