Bitwise NOT Operator in Golang

The caret (^) character in Golang stands in for the bitwise NOT operator. By flipping 0s and 1s into 1s and 0s into 0s, this operator inverts the bits of an integer value. We'll talk about Golang's bitwise NOT operator and some real-world uses for it in this article.

What is the Bitwise NOT Operator?

The complement operator, also referred to as the bitwise NOT operator, is a unary operator that performs bit inversion on a single operand. For processing binary data in computer programmes, use this operator. The bitwise NOT operator flips all of the bits in an integer value when it is applied to one.


The syntax for the bitwise NOT operator in Golang is as follows −


The operand whose bits we wish to invert in this case is x. The bitwise NOT operator in Golang is used as follows in the code −


package main

import "fmt"

func main() {
   var x uint8 = 25
   fmt.Printf("x before bitwise NOT: %08b\n", x)
   result := ^x
   fmt.Printf("x after bitwise NOT: %08b\n", result)


x before bitwise NOT: 00011001
x after bitwise NOT: 11100110

As you can see from the output, the bits of the original value (25 in this case) are inverted when we apply the bitwise NOT operator. The result is the value 230.

Practical Applications

There are various beneficial uses for the bitwise NOT operator in computer programming. Here are a few illustrations examples −

The bitwise NOT operator can be used in encryption methods to flip a binary number's bits.

For performing sophisticated bitwise operations, the bitwise NOT operator is frequently used with other bitwise operators like AND, OR, and XOR.

Bit masks are produced using the bitwise NOT operator for usage in bit manipulation techniques.

For example, IP addresses and subnet masks are networking protocols that use the bitwise NOT operator.


In Golang, the bitwise NOT operator is a powerful tool for working with binary data. It is used to flip the bits of an integer value and is denoted by the caret symbol (). The bitwise NOT operator has a wide range of real-world uses and is a crucial tool for any programmer working with binary data.

Updated on: 06-Apr-2023


Kickstart Your Career

Get certified by completing the course

Get Started