Você precisa de operadores Bitwise Shift no Excel VBA que é semelhante aos operadores << e >> em C ++, para fazer a mudança de bit no Excel VBA. Mas infelizmente, o VBA não possui nenhum operador de mudança de bit. Neste caso, podemos replicar operadores de deslocamento bit a bit, com multiplicação ou divisão pela potência apropriada de 2.
Índice
Função Bitwise Right Shift para fazer a mudança de bit
Public Function shr(ByVal Value As Long, ByVal Shift As Byte) As Long Dim i As Byte shr = Value If Shift > 0 Then shr = Int(shr / (2 ^ Shift)) End If End Function
A mudança de bit à direita é igual a dividir o valor por 2Shift.
Função de deslocamento à esquerda bit a bit:
Public Function shl(ByVal Value As Long, ByVal Shift As Byte) As Long shl = Value If Shift > 0 Then Dim i As Byte Dim m As Long For i = 1 To Shift m = shl And &H40000000 shl = (shl And &H3FFFFFFF) * 2 If m <> 0 Then shl = shl Or &H80000000 End If Next i End If End Function
Deslocamento à esquerda é igual a multiplicar Valor por 2Shift. Mas, para evitar um erro de estouro, usamos um pequeno truque para criar a mudança de bit:
m = shl And &H40000000 ' save 30th bit shl = shl And &H3FFFFFFF ' clear 30th and 31st bits shl = shl * 2 ' multiply by 2 If m <> 0 Then shl = shl Or &H80000000 ' set 31st bit End If
Qual é um exemplo de como usar DESLOCDIRBIT no Excel?
DESLOCDIRBIT é uma função do Excel usada para deslocar bits para a esquerda ou para a direita. A função recebe dois argumentos: o número de bits a serem deslocados e o número de casas para deslocá-los. Por exemplo, se você quiser deslocar o número 1234 cinco casas para a esquerda, use a função DESLOCDIRBIT(1234,5). Isso resultaria no número 0001234. Se você quisesse deslocar o número 1234 cinco casas para a direita, usaria a função DESLOCDIRBIT(1234,5). Isso resultaria no número 1234000.
Quando você não deve usar DESLOCDIRBIT no Excel?
DESLOCDIRBIT não deve ser usado quando o número de bits a serem deslocados for maior que o número de bits no operando. Por exemplo, se você quiser deslocar o número 1234 dois bits para a direita, use a fórmula: =DESLOCDIRBIT(1234,2). No entanto, se você quiser deslocar o número 12345678 dois bits para a direita, use a fórmula: =DESLOCDIRBIT(12345678,2), pois o número de bits a deslocar (8) é maior que o número de bits no operando (4).
E mais...
Compre Aqui pelo menor preço: Notebooks, Smartphones, Livros e tudo que você precisa. Receba suas compras rapidamente! |
Você também pode comprar Microsoft 365 Family, Microsoft 365 Personal, Office 365 Home, ou Office Professional Plus. |
- Como inserir o símbolo da criptomoeda Bitcoin na planilha de Excel
- O Que São Variáveis Numéricas e Como Usar no Excel VBA
- Usar uma lista suspensa para pesquisar e retornar vários valores no Excel
- Procurar um intervalo de células e retornar vários valores no Excel
- Como inserir estrelas para classificar dados em uma planilha de Excel