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