Функции поразрядной обработки
Ряд функций предназначен для поразрядной логической обработки данных:
bitand(A.B) — возвращает поразрядное И двух неотрицательных целых аргументов А и В. Пример:
» f=bitand(7,14)
f =
6
bitcmp(A.n) — возвращает поразрядное дополнение аргумента А как n-битовое неотрицательное целое число. Пример:
» g=bitcmp(6,4)
g =
9
bitor(A.B) — возвращает поразрядное ИЛИ двух неотрицательных целых аргументов А и В. Пример:
» v=bitor(12.21)
v = 29
bitmax — возвращает максимальное целое число без знака, которое может быть представлено в формате чисел с плавающей запятой применительно к используемому компьютеру. Это значение определяется для комбинации, когда все биты установлены. На машинах с IEEE-арифметикой это значение равно 2
53
-1. Пример:
» bitmax
ans =
9.0072е+015
bitset(A.bit.v) — устанавливает бит в позиции bit равным значению v, которое должно быть 0 или 1. Пример:
» d=bitset(12.2.1)
d =
14
bitshift(A.n) — возвращает значение аргумента А, сдвинутое на п бит. Если n>0, это аналогично умножению на 2" (левый сдвиг). Если n<0, это аналогично делению на 2n (правый сдвиг). Пример:
» f=bitshift(4.3)
f =
32
bitset(A.bit) — устанавливает бит в позиции bit аргумента А в единичное значение. Аргумент А должен быть неотрицательным целым, bit — это номер в диапазоне между 1 и числом бит в целом числе, представленном в формате чисел с плавающей запятой.
bitget(A.bit) — возвращает значение бита в позиции bit операнда А. Аргумент А должен быть неотрицательным целым числом, bit — это номер между 1 и числом бит в целом числе формата с плавающей запятой. Пример:
» disp(dec2bin(23))
10111
» С = bitget(23.5:-l:l)
С =
1 0 1 1 1
bitxor(A, В) — возвращает результат поразрядного исключающего ИЛИ для двух аргументов А и В. Оба аргумента должны быть целыми. Пример:
» x=bitxor(12.31)
х =
19
Чтобы операнды этих функций гарантированно были целыми числами, при их задании рекомендуется использовать функции ceil, fix, floor и round.