exponenta event banner

bitset

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

Описание

пример

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™

.

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

.

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

См. также

| | | | | |

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