Иллюстрированный самоучитель по MatLab

Функции поразрядной обработки

Ряд функций предназначен для поразрядной логической обработки данных:

  • 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.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.