Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

bitset

Set bit at specific location

Syntax

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

Description

example

intout = bitset(A,bit) returns the value of A with position bit set to 1 (on).

example

intout = bitset(A,bit,assumedtype) assumes A is of type assumedtype.

example

intout = bitset(A,bit,V) returns A with position bit set to the value of V.

  • If V is zero, then the bit position bit is set to 0 (off).

  • If V is nonzero, then the bit position bit is set to 1 (on).

example

intout = bitset(A,bit,V,assumedtype) assumes A is of type assumedtype.

Examples

collapse all

Set Bits to On

Add powers of 2 onto a number.

A = 4;
intout = bitset(A,4:6)
intout =

    12    20    36

You can see that bitset sequentially turns on bits 4 through 6.

c = dec2bin(intout)
c =

001100
010100
100100

Out of Range of Integer Type

MATLAB® throws an error if you specify an integer outside the range of assumedtype. For instance, bitset(300,5,'int8') returns an error since the maximum value of an int8 integer is 127.

Avoid this error by limiting your input to the range of the specified datatype.

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

    91

Set Bits to Off

Repeatedly subtract powers of 2 from a number.

a = intmax('uint8')
a =

  255

for k = 0:7
   a = bitset(a, 8-k, 0);
   b(1,k+1) = a;
end
b
b =

  127   63   31   15    7    3    1    0

Set Multiple Bits

Set multiple bits to different values

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

     2     0     0    16    32

Input Arguments

collapse all

A — Input valuesarray

Input values, specified as an array. A, bit, and V can each be scalars or arrays of the same size.

  • If A is a double array, and assumedtype is not specified, then MATLAB® treats A as an unsigned 64-bit integer.

  • If assumedtype is specified, then all elements in A must have integer values within the range of assumedtype.

Data Types: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

bit — Bit positioninteger | integer array

Bit position, specified as an integer or integer array. A, bit, and V can each be scalars or arrays of the same size. The values of bit must be between 1 (the least significant bit) and the number of bits in the integer class of A.

Data Types: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

assumedtype — Assumed data type of A 'uint64' | 'uint32' | 'uint16' | 'uint8' | 'int64' | 'int32' | 'int16' | 'int8'

Assumed data type of A, specified as 'uint64', 'uint32', 'uint16', 'uint8', 'int64', 'int32', 'int16', or 'int8'.

  • If A is a double array, then assumedtype can specify any valid integer type, but defaults to 'uint64'.

  • If A is an integer type array, then assumedtype must specify that same integer type.

Data Types: char

V — bit valuescalar | numeric array

Bit value, specified as a scalar or a numeric array. A, bit, and V can each be scalars or arrays of the same size.

Data Types: double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Output Arguments

collapse all

intout — Adjusted integersarray

Adjusted integers, returned as an array. intout is the same data type as A.

  • If A, bit, and V are all scalars, then intout is also a scalar.

  • If any of A, bit, or V is an array, then intout is the same size as that array.

Introduced before R2006a

Was this topic helpful?