El operador NOT bit a bit en el mundo de la programación generalmente toma un número y devuelve los bits invertidos de ese número como se muestra a continuación:
Bitwise NOT of 1 = 0 Bitwise NOT of 0 = 1
Ejemplo:
Input : X = 010101 Output : Bitwise NOT of X = 101010
Pero Golang no tiene ningún operador Bitwise NOT (~) especificado unario o puede decir Bitwise Complement operator como otros lenguajes de programación (C/C++, Java, Python, etc.). Aquí, debe usar el operador Bitwise XOR(^) como operador Bitwise NOT . ¿Pero cómo?
Entendamos cómo Bitwise XOR toma dos patrones de bits de igual longitud y realiza la operación OR exclusiva en cada par de bits correspondientes.
1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 0 = 0 0 XOR 1 = 1
Aquí puede ver el resultado de XOR(M, N) = 1 solo si M != N, de lo contrario será 0 . Entonces, aquí usaremos el operador XOR como un operador unario para implementar el complemento a uno de un número.
En Golang, suponga que tiene un bit M dado, entonces ^M = 1 ^ M que será igual al complemento de uno o puede decir el resultado del operador Bitwise NOT.
Ejemplo: Suponga que tiene los bits dados como 010101.
Input: 11111111 XOR 00001111 Output: 11110000
package main import "fmt" func main() { // taking the number in the hexadecimal // form it is 15 i.e. 00001111 in 8-bit form var bitwisenot byte = 0x0F // printing the number in 8-Bit fmt.Printf("%08b\n", bitwisenot) // using the ^M = 1 ^ M fmt.Printf("%08b\n", ^bitwisenot) }
Producción:
00001111 11110000
Aquí, puede ver, si simplemente resolvemos Bitwise Not de 00001111, entonces será igual a 11110000.
Publicación traducida automáticamente
Artículo escrito por Nikitha Sri y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA