2013-12-19 6 views
1

моя программа Perl:пакета в Perl

say 'hexa notation in perl script'; 
my$str = pack 'H*','987456123'; 
print unpack('H*',$str),"\n"; 
print unpack('h*',$str),"\n"; 

выход:

hexa notation in perl script 
1. 9874561230 #why it showing zero here 
2. 8947652103 

В моем 1 результате, почему он показывает zero.What является причиной этого? Ваш ответ будет оценен.

ответ

2

У вас есть нечетное число символов в 987456123 и H* упаковки требует даже, поэтому она принимает нуль для последней пары (98, 74, 56, 12 и 30 в конце).

От perldoc:

Начиная с начала шаблона для упаковки(), каждая пара символов преобразуется в 1 символ выхода. [...] Если длина входной строки не четная, она ведет себя так, как будто заполняется нулевым символом в конце. Аналогичным образом, «лишние» nybbles игнорируются во время распаковки.

+0

Благодарим вас за разъяснение. Мое сомнение – user3114045

+0

@mpapec, где мы можем прочитать, что требуется H *? –

+0

несколько раз мы используем 'H *' и несколько раз '* H'.why мы используем так. Какая разница b/w? Пожалуйста, дайте мне знать – user3114045

 Смежные вопросы

  • Нет связанных вопросов^_^