bitset

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

Синтаксис

intout = bitset(A,bit)
intout = bitset(A,bit,assumedtype)
intout = bitset(A,bit,V)
intout = bitset(A,bit,V,assumedtype)

Описание

пример

intout = bitset(A,bit) возвращает значение A с положением набор bit к 1 (на).

пример

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

пример

intout = bitset(A,bit,V) возвращает A с положением набор bit к значению V.

  • Если V является нулем, то позиция двоичного разряда bit установлена в 0 (прочь).

  • Если V является ненулевым, то позиция двоичного разряда bit установлена в 1 (на).

пример

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++ с помощью MATLAB® Coder™.

Смотрите также

| | | | | |

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