Usando a função de mudança de bit no Excel VBA

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.

função de mudança de bit no Excel VBA

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: NotebooksSmartphonesLivros 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.


Confira Estes Produtos Que Eu Recomendo

Compre Planilhas de Excel

Confira os Preços

Climatizador de Ar

Condira os Preços

Notebook DELL Inspiron

Confira os Preços

Celular da Marca Xiaomi

Confira os Preços

Notebook Lenovo IdeaPad

Confira Os Preços

Smartphone Samsung Galaxy

Confira os Preços

Aspirador de Pó Robô

Confira os Preços

Os Melhores Ventiladores

Confira os Preços

Notebook Gamer

Confira os Preços

Materiais para Escritórios

Confira os Preços

Impressora Multifuncional de Tinta

Confira os Preços

Smart TV Samsung de 32 a 70

Confira os Preços

Tags:

Edivaldo
Edivaldo

Edivaldo. Analista de funções e fórmulas de Excel, adoro fazer planilhas e compartilhar meus conhecimentos com as pessoas. Seja bem-vindo ao tudo Excel, onde você aprende de graça e tira suas dúvidas.

Se você tem alguma dúvida, escreva seu comentário abaixo:

Deixe um Comentário

Tudo Excel
Logo