о rd для преобразования символа
Решение
Воспользуйтесь функцией о rd для преобразования символа в число или функцией ch r — для преобразования числа в символ:
$num = ord($char), $char = chr($num),
Формат %с в функциях printf и spnntf также преобразует число в символ-
$char = sprintf( %c , $num), # Медленнее чем chr($num)
printf( Number %d is character %c\n , $num, $num) Number 101 is character e
Шаблон С*, используемый в функциях pack и unpack, позволяет быстро преобразовать несколько символов:
@ASCII = unpack( С* $stnng) ©STRING = pack( C* $ascn),
Комментарий
В отличие от низкоуровневых, нетипизованных языков вроде ассемблера, Perl не считает эквивалентными символы и числа; эквивалентными считаются строки и числа. Это означает, что вы не можете произвольно присвоить вместо символа его числовое представление, или наоборот. Для преобразования между символами и их числовыми значениями в Perl существуют функции chr и ord, взятые из Pascal:
$ascu_value = ord( e ) ft Теперь 101 Icharacter = chг(101), ft Теперь е
Символ в действительности представляется строкой единичной длины, поэтому его можно просто вывести функцией print или с помощью формата %s функций printf и spnntf Формат %с заставляет printf или spnntf преобразовать число в символ, однако он не позволяет вывести символ, который уже хранится в символьном формате (то есть в виде строки).
printf( Number %d is character %c\n 101 101),
Функции pack, unpack, chr и ord работают быстрее, чем spnntf. Приведем пример практического применения pack и unpack.
@ascn_character_numbers = unpack( С* , sample ), print (eiascii_character_numbers\n , 115 97 109 112 108 101
$word = pack( C» ascn_character_nurabers),
Sword = pack( C* 115, 97, 109, 112, 108 101), # To же самое
print $word\n
sample
А вот как превратить HAL в IBM:
$hal = HAL ,
@ascn = unpack( C* , $hal),
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий