bitset

Установите бит в определенном месте

Описание

пример

intout = bitset(A,bit) возвращает значение A с позиционной bit установите значение 1 (on).

пример

intout = bitset(A,bit,assumedtype) принимает A имеет тип assumedtype.

пример

intout = bitset(A,bit,V) возвращает A с позиционной bit установите в значение V.

  • Если V равен нулю, затем положение бита bit имеет значение 0 (off).

  • Если V ненулевое, затем положение бита bit устанавливается равным 1 (on).

пример

intout = bitset(A,bit,V,assumedtype) принимает A имеет тип assumedtype.

Примеры

свернуть все

Добавьте степени 2 к числу.

A = 4;
intout = bitset(A,4:6)
intout = 1×3

    12    20    36

Это видно bitset последовательно включает биты с 4 по 6.

c = dec2bin(intout)
c = 3x6 char array
    '001100'
    '010100'
    '100100'

MATLAB ® выдает ошибку, если вы задаете целое число вне области значений assumedtype. Для образца, bitset(300,5,'int8') возвращает ошибку с момента максимального значения int8 целое число равно 127.

Избегайте этой ошибки, ограничивая свой вход областью значений заданных типов данных.

intout = bitset(75,5,'int8')
intout = 91

Неоднократно вычитайте степени 2 из числа.

a = intmax('uint8')
a = uint8
    255
for k = 0:7
   a = bitset(a, 8-k, 0);
   b(1,k+1) = a;
end
b
b = 1x8 uint8 row vector

   127    63    31    15     7     3     1     0

Установите несколько биты в различные значения

bits = 2:6;
val = [1 0 0 1 1];
intout = bitset(0,bits,val,'int8')
intout = 1×5

     2     0     0    16    32

Входные параметры

свернуть все

Входные значения, заданные как массив. A, bit, и V каждый может быть скалярами или массивами одинакового размера.

  • Если A является двойным массивом, и assumedtype не задан, тогда MATLAB® лечит A как беззнаковое 64-битное целое число.

  • Если assumedtype задается, затем все элементы в A должны иметь целочисленные значения в области значений assumedtype.

Типы данных: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Битовая позиция, заданная как целое число или целое число массива. A, bit, и V каждый может быть скалярами или массивами одинакового размера. Значения bit должно быть между 1 (наименьший значащий бит) и количеством битов в целочисленном классе A.

Типы данных: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Предполагаемый тип данных A, заданный как 'uint64', 'uint32', 'uint16', 'uint8', 'int64', 'int32', 'int16', или 'int8'.

  • Если A является двойным массивом, тогда assumedtype может задать любой допустимый целый тип, но по умолчанию равен 'uint64'.

  • Если A - целый тип, затем assumedtype должен указать тот же целый тип.

Типы данных: char | string

Битовое значение, заданное как скаляр или числовой массив. A, bit, и V каждый может быть скалярами или массивами одинакового размера.

Типы данных: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Выходные аргументы

свернуть все

Скорректированные целые числа, возвращенные как массив. intout - тот совпадающий тип данных, что и A.

  • Если A, bit, и V все скаляры, тогда intout также является скаляром.

  • Если какой-либо из A, bit, или V является массивом, тогда intout - тот же размер, что и этот массив.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

Генерация кода GPU
Сгенерируйте код CUDA ® для графических процессоров NVIDIA ® с помощью GPU Coder™

.

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

См. также

| | | | | |

Представлено до R2006a