bitshift

Desloca os bits de um inteiro para a esquerda ou para a direita.

Categoria: Language Fundamentals > Operators and Elementary Operations

Sintaxe

C = bitshift(A, k)

Desloca A em k posições de bit: para a esquerda se k é positivo, para a direita se negativo.

Descrição

Deslocar uma posição para a esquerda dobra o valor e para a direita o divide por dois, descartando a fração. Assim, bitshift(1, 3) vale 8 e bitshift(16, -2) vale 4. Bits empurrados além da largura da classe são perdidos: bitshift(uint8(255), 1) vale 254.

Deslocamentos facilitam potências de dois e o empacotamento de vários campos pequenos em um inteiro.

Argumentos de entrada

A
Array de inteiros não negativos.
k
Número de posições. Positivo desloca para a esquerda, negativo para a direita.

Argumentos de saída

C
Valores deslocados, da mesma classe de A.

Exemplo

bitshift(1, 3)
bitshift(16, -2)
bitshift(uint8(1), [1 2 3])
bitshift(uint8(255), 1)
Saída
ans = 8
ans = 4
ans = 1×3 uint8 row vector

   2   4   8
ans = uint8
   254

Veja também

bitand bitor bitget pow2 swapbytes