bit32

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Esta biblioteca fornece funções para realizar operações de bits.

Limitações de Número

Esta biblioteca trata números como inteiros de 32 bits não assinados; os números serão convertidos para isso antes de serem usados (veja imagem abaixo).Números com números decimais são arredondados para o número inteiro mais próximo.

32-bit integer conversion (in hexadecimal)

Resumo

Funções

  • Retorna um número depois que seus bits foram movidos aritmeticamente para a direita por um deslocamento dado.

  • band(numbers : Tuple):number

    Retorna o AND bitwise de todos os números fornecidos.

  • Retorna a negação bitwise de um número dado.

  • bor(numbers : Tuple):number

    Retorna o OR bitwise de todos os números fornecidos.

  • btest(numbers : Tuple):boolean

    Retorna um booleano que descreve se o bitwise e seus operandos são diferentes de zero.

  • bxor(numbers : Tuple):number

    Retorna o XOR bitwise de todos os números fornecidos.

  • Retorna o número dado com a ordem dos bytes trocados.

  • Retorna o número de zeros consecutivos na representação de 32 bits do número fornecido, começando pelo bit mais significativo à esquerda.

  • Retorna o número de bits zero consecutivos na representação de 32 bits do número fornecido, começando pelo bit mais à direita (menos significativo).

  • extract(n : number,field : number,width : number):number

    Extraia uma gama de bits de um número e retorne-os como um número não assinado.

  • replace(n : number,v : number,field : number,width : number):number

    Retorne uma cópia de um número com um conjunto de bits substituídos por um valor dado.

  • Retorna um número depois que seus bits foram girados para a esquerda por um número dado de vezes.

  • Retorna um número cujos bits foram movidos logicamente para a esquerda por um deslocamento dado.

  • Retorna um número depois que seus bits foram girados para a direita por um número dado de vezes.

  • Retorna um número cujos bits foram logicamente movidos para a direita por um deslocamento dado.

Funções

arshift

Retorna o número x deslocado para a direita disp bits.O número disp pode ser qualquer integralrepresentável.Deslocamentos negativos mudam para a esquerda.

Essa operação de mudança é chamada de mudança aritmética.Os bits vazios à esquerda são preenchidos com cópias do bit superior de x ; os bits vazios à direita são preenchidos com zeros.Em particular, deslocamentos com valores absolutos maiores que 31 resultam em zero ou 0xFFFFFFFF (todos os bits originais são deslocados).

Parâmetros

O número cujos bits devem ser movidos.

disp: number

O número inteiro de bits para deslocar.

Devolução

band

Retorna o AND bitwise de todos os números fornecidos.

Cada bit é testado contra a seguinte tabela de verdade:


<th>B</th>
<th>Produção</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
A
Bitwise AND of 3 numbers

Parâmetros

numbers: Tuple

Devolução

bnot

Retorna a negação bitwise de x .

Negation of a provided number

Para qualquer inteiro x, a seguinte identidade mantém:


assert(bit32.bnot(x) == (-1 - x) % 2^32)

Parâmetros

Devolução

Retorna o OR bitwise de todos os números fornecidos.

Cada bit é testado contra a seguinte tabela de verdade:


<th>B</th>
<th>Produção</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
A
Bitwise OR of 3 numbers

Parâmetros

numbers: Tuple

Devolução

btest

Retorna um sinalizador binário se o bitwise e de seus operandos é diferente de zero.

Parâmetros

numbers: Tuple

Devolução

bxor

Retorna o XOR bitwise de todos os números fornecidos.

Cada bit é testado contra a seguinte tabela de verdade:


<th>B</th>
<th>Produção</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
A
Bitwise XOR of 3 numbers

Parâmetros

numbers: Tuple

Devolução

byteswap

Retorna o número dado com a ordem dos bytes trocados.

Parâmetros

Devolução

countlz

Retorna o número de zeros consecutivos na representação de 32 bits do número fornecido, começando pelo bit mais significativo à esquerda.Retorna 32 se o número fornecido for zero.

Parâmetros

Devolução

countrz

Retorna o número de bits zero consecutivos na representação de 32 bits do número fornecido, começando pelo bit mais à direita (menos significativo).Retorna 32 se o número fornecido for zero.

Parâmetros

Devolução

extract

Retorna o número não assinado formado pelos bits field para field + width - 1 a partir de n .Os bits são numerados de 0 (menos significativos) a 31 (mais significativos).Todos os bits acessados devem estar na faixa [0, 31].O padrão para width é 1.

Parâmetros

field: number
width: number
Valor Padrão: 1

Devolução

replace

Retorna uma cópia de com os bits substituídos pelo valor .Veja bit32.extract() para detalhes sobre field e width .

Parâmetros

field: number
width: number
Valor Padrão: 1

Devolução

lrotate

Retorna o número x girado para a esquerda disp bits.O número disp pode ser qualquer integralrepresentável.Para qualquer deslocamento válido, a seguinte identidade mantém:


assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))

Em particular, os deslocamentos negativos giram para a direita.

Parâmetros

disp: number

Devolução

lshift

Retorna o número x deslocado para a esquerda disp bits.O número disp pode ser qualquer integralrepresentável.Deslocamentos negativos mudam para a direita.Em qualquer direção, bits vazios são preenchidos com zeros.Em especial, deslocamentos com valores absolutos maiores que 31 resultam em zero (todos os bits são movidos para fora).

Number shifted 3 to the left

Para deslocamentos positivos, a seguinte igualdade se mantém:


assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)

Parâmetros

disp: number

Devolução

rrotate

Retorna o número x girado para a direita disp bits. O número disp pode ser qualquer integralrepresentável.

Para qualquer deslocamento válido, a seguinte identidade mantém:


assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))

Em particular, os deslocamentos negativos giram para a esquerda.

Parâmetros

disp: number

Devolução

rshift

Retorna o número x deslocado para a direita disp bits.O número disp pode ser qualquer integralrepresentável.Deslocamentos negativos mudam para a esquerda.Em qualquer direção, bits vazios são preenchidos com zeros.Em especial, deslocamentos com valores absolutos maiores que 31 resultam em zero (todos os bits são movidos para fora).

Number shifted 3 to the right

Para deslocamentos positivos, a seguinte igualdade se mantém:


assert(bit32.rshift(b, disp) == (b % 2^32 / 2^disp) // 1)

Esta operação de mudança é o que é chamado de mudança lógica.

Parâmetros

disp: number

Devolução