Operaciones lógicas bit a bit en R

Las operaciones lógicas bit a bit se utilizan para realizar operaciones lógicas bit a bit en un número. Este artículo analiza cómo se utilizan los operadores lógicos bit a bit en el lenguaje de programación R.

Las operaciones lógicas incluyen:

OPERADOR DESCRIPCIÓN SINTAXIS
bitwOr bit a bit O bitwOr(valor1,valor2)
bitwxor XOR bit a bit bitwXor(valor1,valor2)
bitWnot bit a bit NO bitwNo(valor)
bitwAnd bit a bit Y bitwAnd(val1,val2)
bitwShiftL Shift izquierdo bitwShiftL(cambiarvalor,valor)
bitwShiftR Giro a la derecha bitShiftR(desplazamiento,valor)

Analicemos estos operadores en detalle.

bitwOr

El lenguaje de programación R usa la función bitwOr para realizar la operación Bitwise OR en dos números. Tomará dos valores como entrada y devolverá el valor. Donde el valor pueden ser los números o listas/vectores.

Ejemplo :

2=0010
3=0011
bitwOr(2,3)   --->  0010
                &   0011
               --------------
                    0011 --->  3

Programa:

R

# bitwise or for 2 and 3
print(bitwOr(2,3))
  
# bitwise or for 2 and 4
print(bitwOr(2,4))
  
# bitwise or for 2 and 5
print(bitwOr(2,5))
  
# bitwise or for 78 and 0
print(bitwOr(78,0))

Producción:

[1] 3
[1] 6
[1] 7
[1] 78

bitwOr también se puede realizar en vectores

Programa:

R

s=c(1,2,3,4,5)
  
# s and a are the two vectors
a=c(90,91,92,93,94)
  
# bitwise or operation between
# a ans s vector elements
print(bitwOr(a,s))

Producción:

[1] 91 91 95 93 95

bitwxor

En R, podemos realizar la operación bit a bit xor usando la función llamada función bitwXor(). Esta función toma dos datos a la vez como entrada y realiza la siguiente operación. Convierte los números en valores binarios (bits – 0 y 1). Luego devuelve 0 si ambos son iguales, de lo contrario 1.

Los valores de entrada pueden ser números enteros o una lista/vector.

Ejemplo :

5 - 0101
6 - 0110
bitwXOR(5,6)  --->  0101
                ^   0110
               ---------------
                    0011 ---> 3

Programa

R

# range of a values
# each value of a with 
# respect to b
a=10:20
b=58
  
for (i in a){
    print(bitwXor(i,b))
}

Producción:

[1] 48
[1] 49
[1] 54
[1] 55
[1] 52
[1] 53
[1] 42
[1] 43
[1] 40
[1] 41
[1] 46

bitwNo

El operador bit a bit se usa para devolver el valor inverso del número dado, es decir, si 0 entonces 1, si 1 entonces 0. En R, podemos encontrar bit a bit del número dado usando la función llamada bitwNot(). La entrada para esta función también puede ser un número entero, un vector, una array, una lista, etc.

Ejemplo:

6- 0110
bitwNot(6)   ---->   0110
                  +    1
                 -----------
                     0111 ---> -7

Programa

R

a=3
b=6
  
# bitwise on 3
print(bitwNot(a))
  
# bitwise on 6
print(bitwNot(b))
print("----------------")
  
# consider values from 1 to 15 
# to perform this operation
values=1:15
for (i in values){
    print(bitwNot(i))
}

Producción:

[1] -4
[1] -7
[1] "----------------"
[1] -2
[1] -3
[1] -4
[1] -5
[1] -6
[1] -7
[1] -8
[1] -9
[1] -10
[1] -11
[1] -12
[1] -13
[1] -14
[1] -15
[1] -16

Esto también se puede aplicar a los vectores.

Programa

Python

# create two vectors a and
# b  with elements
a=c(7058,7059,7056)
b=c(34,45,63)
  
# bitwise on vector a
print(bitwNot(a))
  
# bitwise on vector b
print(bitwNot(b))

Producción:

[1] -7059 -7060 -7057
[1] -35 -46 -64

bitwAnd

El lenguaje R usa la función bitwAnd para realizar la operación bit a bit. Donde los valores de entrada pueden ser números enteros o una lista/vector.

Ejemplo:

3 - 0011
4 - 0100
bitwAnd(3,4)   ---->  0011
                  &   0100
                 --------------
                      0000  ---> 0

Programa

R

# bitwise operator between 4 and 3
print(bitwAnd(4,3))
  
# bitwise operator between 4 and 7
print(bitwAnd(4,7))
  
# bitwise operator between  1and 4
print(bitwAnd(1,4))
  
# bitwise operator between 56 and 8
print(bitwAnd(56,8))
  
# bitwise operator between 4 and 0
print(bitwAnd(4,0))

Producción:

[1] 0
[1] 4
[1] 0
[1] 8
[1] 0

AND bit a bit también se puede realizar en vectores.

Programa

R

s=c(1,2,3,4,5)
  
# s and a are the two vectors
a=c(90,91,92,93,94)
  
# bitwise And operation between
# a ans s vector elements
print(bitwAnd(s,a))

Producción:

[1] 0 2 0 4 4

bitwShiftL

El lenguaje R usa la función bitwShiftL para realizar la operación de desplazamiento a la izquierda bit a bit. La entrada a la función es el valor de desplazamiento y un número entero/vector/lista

Fórmula:

N*(2^i)

Donde N es el número dado e i es el número de turnos.

Ejemplo:

bitwShiftL(1,4) - N=1 and i=4
so, N*(2^i)
1*(2^4)=16

Programa

R

# shift 4 by 1 bit
bitwShiftL(1,4)
  
# shift 4 by 2 bit
bitwShiftL(2,4)
  
# shift 4 by 3 bit
bitwShiftL(3,4)
  
# shift 4 by 4 bit
bitwShiftL(4,4)
  
# shift 4 by 5 bit
bitwShiftL(5,4)

Producción:

16
32
48
64
80

bitShiftR

Realizará la operación de cambio a la derecha. Cambiará los bits de izquierda a derecha.

Fórmula:

N*(2/i)

donde N es el número dado e i es el número de desplazamientos a la derecha.

Ejemplo:

bitShiftR(4,1)
here N=4 and i=1
so 4*(2/1)=8

Programa

R

# shift 1 by 4 bit
bitwShiftR(1,4)
  
# shift 4 by 2 bit
bitwShiftR(4,2)
  
# shift 4 by 3 bit
bitwShiftR(3,4)
  
# shift 16 by 2 bit
bitwShiftR(16,2)
  
# shift 8 by 2 bit
bitwShiftR(8,2)

Producción:

0
1
0
4
2

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *