Функции поразрядной обработки
Ряд функций предназначен для поразрядной логической обработки данных:
- 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-арифметикой это значение равно 253 -1. Пример:
>
>
bitmax
ans
=
9.0072e
+
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
>
>
C
=
bitget(
23.5
:
-
1
:
1
)
C
=
1
0
1
1
1
- bitxor(A, В) – возвращает результат поразрядного исключающего ИЛИ для двух аргументов А и В. Оба аргумента должны быть целыми. Пример:
>
>
x
=
bitxor(
12.31
)
x
=
19
Чтобы операнды этих функций гарантированно были целыми числами, при их задании рекомендуется использовать функции ceil, fix, floor и round.