Клиппер 5. Справочник

в виде десятичного числа или


    в виде десятичного числа или символьной строки шестнадцатеричных цифр.
 
    <lLowByte> - необязательный логический параметр, задающий при значении
    .T. сдвиг младшего байта (диапазон количества сдвигов от 1 до 7), а
    при значении .F. или по умолчанию сдвиг всех 16 битов слова (диапазон
    количества сдвигов от 1 до 15).
 
  Возвращаемое значение
 
    nWORD - числовое значение слова с циклически сдвинутыми битами.
 
  Описание
 


    Функция позволяет осуществить циклический сдвиг влево битов
    16-битового слова с числовым значением в диапазоне от 0 до 65535.
 
    При сдвиге бит, выходящий за разрядную сетку слева, переносится в
    самый правый разряд. Параметр <lLowByte> позволяет задать сдвиг только
    младшего байта слова.
 
  Примечания
 
  . Количество сдвигов вычисляется как остаток от деления значения,
    заданного параметром <nWORD2|cHexWORD2>, на число 16 при значении .F.,
    или на число 8 при значении .T. параметра <lLowByte> (длина слова и
    байта соответственно).
 
  . Для выполнения циклического сдвига вправо на 1 бит следует
    выполнить циклический сдвиг (влево) на 15 для слова или на 7 для
    байта, а для сдвига вправо на 2 бита - на 14 и 6 соответственно, и
    т.д.
 
  Примеры
 
  . Циклический сдвиг значения 1 влево на 3 бита и отображение его в
    двоичной форме:
 
    * 00000000 00000001 -> 00000000 00001000
 
    ? NTOC(1, 2, 16, "0"), NTOC(NUMROL(1, 3), 2, 16, "0")
 
  . Сдвиг 8-ми младших битов значения 60000:
 
    * 11101010 01100000 -> 11101010 10000001
 
    NUMROL(60000, 2, .T.)
 
  . Циклический сдвиг вправо на 2 бита:
 
    * 00000000 00000100 -> 00000000 00000001
 
    ? NUMROL(4, 14)
 
  . Задание количества сдвигов, превышающего 15, эквивалентно заданию
    остатка от деления на 16 (33 % 16 = 1):
 

Содержание раздела