Perl dla AIX-a: konwersja numeru dziesiętnego na szestnakowy i odwrotnie na przykładzie znajdowania vhost-a

Problem:
W przypadku chęci mapowania dysków należy znaleźć vhost-a na podstawie numeru partycji, problem jest tylko jeden: numer ten jest w postaci szesnastkowej.

SVSA            Physloc                                      Client Partition ID
--------------- -------------------------------------------- ------------------
vhost69         U9117.MMA.10F2F1A-V3-C69                     0x00000045

Rozwiązanie:

Perl bardzo łatwo pozwala sformatować oraz konwertować między systemem dziesiętnym a szesnastkowym:

ziutus@sv21 [/home/ziutus]# perl -e "printf(\"0x%08x\n\", 69)"
0x00000045

Gdzie:

  • 0x wyświetla po prostu napis 0x
  • %x – konwertuje na system szesnastkowy,
  • 8 formatuje wynik aby wyświetlał 8 pól,
  • 0 – oznacza uzupełnienie brakujących znaków zerami,

Stąd napis 0x08x oznacza: ciąg znaków zaczynający sie „0x”, następnie liczba szesnastkowa o długości 8 znaków, której brakujące liczby będą uzupełnione zerami.

A jak sprawdzić jaka liczba dziesiętna odpowiada szesnastkowej 0x00000045? Bardzo prosto:

[0]$ perl -e "printf(\"%d\n\", 0x00000045)"
69

Dodaj komentarz