Bitwise Operation / Bit Shifts calculator / Tool
Bitwise Operation | Bin (2) | Hex (16) | Dec (10) | Oct (8) |
---|---|---|---|---|
Value1 | ||||
Value2 | ||||
AND | 0 | 0 | 0 | 0 |
OR | 0 | 0 | 0 | 0 |
XOR | 0 | 0 | 0 | 0 |
Bit Shifts | Bin (2) | Hex (16) | Dec (10) | Oct (8) |
---|---|---|---|---|
Value | ||||
Left shift | 0 | 0 | 0 | 0 |
Right shift | 0 | 0 | 0 | 0 |
This is a tool for computing bitwise operations (AND, OR, XOR) and bit shifts that runs in your browser, supporting binary, hexadecimal, decimal, and octal numbers.
- Enter a numerical value in any radix and the calculation will be performed automatically.
- Calculated without 32-bit sign.
Bitwise Operation (AND, OR, XOR)
AND (Logical conjunction)
If both of the two bits are 1, 1 is returned; if either of them is 0, 0 is returned.
1010
AND 1100
= 1000
Many programming languages use &
as an operator.
and = x & y;
OR (Logical disjunction)
If either of the two bits is 1, 1 is returned; if both are 0, 0 is returned.
1010
OR 1100
= 1110
Many programming languages use |
as an operator.
or = x | y;
XOR (Exclusive or)
Returns 1 if the two bits have different values, 0 if they have the same value (1 if only one is 1, 0 if both are 0 or both are 1).
1010
XOR 1100
= 0110
Many programming languages use ^
as an operator.
xor = x ^ y;
Bit Shift
Shifts each digit in a bitstring to the right or left.
Since bit shift is also an operation on a bitstring, it is a type of bit operation in the broadest sense. However, it is often distinguished from bitwise operations because it is not a bit-by-bit operation, but rather on the whole number.
Left shift
The rightmost empty bit position is filled with 0, and the overflowing leftmost bit disappears. The following is an example for a 4-bit register.
1111 LEFT-SHIFT 1
= 1110
Many programming languages use <<
as an operator.
leftShift = x << 1;
Right shift
There are two types of shifts: arithmetic shift (signed) and logical shift (unsigned). This tool supports only the latter, logical shift. In both cases, the overflowed rightmost bit disappears, but the way to fill the leftmost empty bit position is different.
Since arithmetic shift preserves the sign, the left-most vacant bit position has the same value as the most significant bit (sign bit). The following is an example for a 4-bit register.
1011 RIGHT-SHIFT 1
= 1101
0011 RIGHT-SHIFT 1
= 0001
Logical shift simply shifts all bits, so the left-most empty bit position is 0. The following is an example for a 4-bit register.
1011 RIGHT-SHIFT 1
= 0101
Many programming languages use >>
or >>>
as an operator. The following is an example for a JavaScript.
rightShift = x >> 1; // Arithmetic shift
rightShift = x >>> 1; // Logical shift