## Introduction

Welcome readers! We hope you are doing great.

** Ruby** is an open-source programming language designed by

**Yukihiro Matsumoto**in the

**mid-1990s**. It was designed with a focus on

**simplicity and programming productivity**. It is a

**high-level, general-purpose programming language**which supports many

**programming paradigms**.

If you want to learn about Ruby, check out our articles on Ruby.

Today, In this article, we will discuss the** Bitwise NOT(~), AND(&), OR(|) and XOR(^) Operations in Ruby **with proper implementation and explanation. So, follow this article till the end.

So, without further ado, let’s start our discussion.

## Bitwise Operations in Ruby

Here in this section, we will discuss different Bitwise operations in Ruby.

### NOT(~) Operation

The** Not(~) **operator is a high precedence unary operator in Ruby. It changes each of the 0 bits in its integer operand to 1 and each of the 1 bits to 0 and produces the binary 1’s complement of the number.

The following result can be shown using the truth table,

For any integer x, it changes x to ~x, which is nothing but -x-1.

#### Example

```
a = 6
puts "Complement(Not) Operator result: "
puts(~a)
```

#### Output

```
Complement(Not) Operator result:
-7
```

### AND(&) Operation

The And(&) operator is a medium precedence binary operator in Ruby. It follows the below truth table,

From the truth table, it is clear that the result of the bits is 1 if and only if both the bits are set to 1.

#### Example

```
a = 6
b = 5
puts "Bitwise And(&) operation result: "
puts(a & b)
```

#### Output

```
Bitwise And(&) operation result:
4
```

### OR(|) Operation

The OR(|) operator is also a medium precedence binary operator in Ruby. It follows the below truth table.

From the above truth table, it is clear that we can say that the resultant bit will be 1 if at least one of the bits is set to 1.

#### Example

```
a = 6
b = 5
puts "Bitwise OR(|) operation result: "
puts(a | b)
```

#### Output

```
Bitwise OR(|) operation result:
7
```

### XOR(^) Operation

The XOR(^) operator is a medium precedence operator for integers. The truth table of the XOR(Exclusive-OR) is shown below:

From the above truth table, it is clear that we can say that the resultant bit will be 1 if both the bits are different.

#### Example

```
a = 6
b = 5
puts "Bitwise XOR(^) operation result: "
puts(a ^ b)
```

#### Output

```
Bitwise XOR(^) operation result:
3
```