Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     13 Aug 2002  05:08:03
 To : Igor Brovchenko
 Subject : Re: Преобразование в шест. ч  исла
 -------------------------------------------------------------------------------- 
 
 Igor Brovchenko wrote:
 
 > 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);
 
 А там сами думайте, что Вам надо. И постарайтесь корректней задавать
 вопросы.
 
 Андрей
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Преобразование в шест. числа   Igor Brovchenko   13 Aug 2002 00:59:36 
 Re: Преобразование в шест. ч исла   Andrey Sapozhnikov   13 Aug 2002 05:08:03 
 Re: Преобразование в шест. числа   Ivan Frolcov   13 Aug 2002 10:23:02 
Архивное /ru.perl/5284f584e13e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional