Учебник по основам PHP. PHPBeginner


         

что указание на присутствие знака


  • h — строка шестнадцатеричных цифр (младший полубайт первый);
    packC'h*"."0123456789abcDEF")
    == «\xlO\x32\x54\x76\x98\xBA\xDC\xFE»


  • H — строка шестнадцатеричных цифр (старший полубайт первый);
    pack("H16"."0123456789abcDEF")
    == «\x01\x23\x45\x67\x89\xAB\xCD\xEF»


  • с — байт со знаком;
    pack("c*"."X".-1.255.256) == «\0\xFF\xFF\0» unpackC'c*". pack("c*"."X".-1.255.256» — (O.-l.-l.O)


  • С — байт без знака;
    pack("C*"."X".-l 255.256) =
    = «\0\xFF\xFF\0» unpackC'C*"
    . Dack("C*","X".-1.255.256)) == (0.255.255.0)


  • s — знаковое короткое число (2 байта, порядок байтов системы);


  • S — беззнаковое короткое число (2 байта, порядок байтов системы);


  • n — беззнаковое короткое число (2 байта, старший байт вначале);
    pack("n*".OxF951.Oxlllllllll) == «\xF9\x51\xFF\xFF»


  • v — беззнаковое короткое число (2 байта, младший байт вначале);
    pack("v",OxF951) == «\x51\xF9»


  • i — знаковое длинное число (4 байта, порядок байтов системы);


  • L — беззнаковое длинное число (4 байта, порядок байтов системы);


  • N — беззнаковое длинное число (4 байта, старший байт вначале);


  • V — беззнаковое длинное число (4 байта, младший байт вначале); j


  • i — знаковое целое число (зависит от системы);


  • I — беззнаковое целое число (зависит от системы);


  • f — дробное float (зависит от системы и представления);


  • d — дробное double (зависит от системы и представления);


  • х — байт \0;


  • X — удалить предыдущий байт; pack("x2A*X2A."Abc".'V) == «\0\ОАя»


  • @ — заполнять символами \0 от текущего места и до указанной позиции.
    pack("A*(a4A*"."Ab"."ZZ") =
    = «Ab\0\OZZ» pack("A*(aiA*"."Abccccc"."ZZ")
    == «AZZ»


  • Заметьте, что указание на присутствие знака в числе реально используется только при распаковке. Не забывайте также, что РНР хранит числа в формате знаковых, системного размера. И проверяйте, умещается ли большое число (РНР может скрыто преобразовать его в дробное) в отведенный для него размер (иначе оно будет урезано без вашего ведома).


    Содержание  Назад  Вперед