The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Преобразования между числами и их строкыми представлениями в Perl (perl example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: perl, example,  (найти похожие документы)
Date: Tue, 13 Aug 2002 05:08:03 +0600 From: Andrey Sapozhnikov <sapa@icb.chel.su> Newsgroups: fido7.ru.perl Subject: Преобразования между числами и их строкыми представлениями в Perl > Hужно записать в файл шестнад. числа, т.е. записывая \x41 - все ОК, но если мне > нужное число я вычисляю, то как его потом записать как шестнад. число? Перво-наперво надо навести порядок в понятиях. Шестнадцатеричных чисел не существует, существует шестнадцатеричное представление чисел. Так шестнадцатеричное представление числа "десять" есть A, двоичное представление числа "десять" - 1010 и т.д. Скалярные переменные в Перл могут хранить как числа так и их строковые представления (они также могут хранить и другие значения, например "числа с плавающей точкой", но нас они пока не интересуют). Преобразования между числами и их строкыми представлениями в десятичной системе в Перл прозрачны, т.е. выполняются автоматически, остальные варианты преобразований необходимо осуществлять явно. Hапример: $x_dec = 10; # Переменная $x_dec содержит число "десять" $x_10 = "10"; # Переменная $x_10 содержит строку с десятичным # представлением числа "десять" В данном случае эти переменные практически идентичны. Т.е. print $x_dec; print $x_10; напечатают строку "10" (число из $x_dec будет преобразовано в десятичное представление автоматически). А $y = $x_dec + 1; $z = $x_10 + 1; запишут в переменные $y и $z число "одиннадцать" поскольку строка из $x_10 будет автоматически преобразована в число из его десятичного представления. Остальные часто используемые преобразования: $a_hex = sprintf('%X', 10); # Число в строку с его шестнадцатеричным # представлением $a_hex = sprintf('%X', "10"); # строку с десятичным представлением можно # точно так же преобразовать в строку с # десятичным... $a = 0xA; # Шестнадцатеричные представления чисел можно # использовать в константах. В $a будет # число "десять" $a = hex("A"); # Строку с шестнадцатеричным # представлением числа - в число А судя по приведенному Вами примеру, Вам нужно записать в файл байт (октет) со значением XX, где XX задан в виде строки с его шестнадцатеричным представлением. $x = "7F"; $code = hex($x); print FILE ord($code); Если значение задано в виде числа или его десятичном представлении, достаточно просто: print FILE ord($x);

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру