# Visual Basic 2010 (Console) Guide

Logical Bitwise Operators

Bitwise operators are used when we want to manipulate the individual bits in a bit pattern. You need to understand binary to follow this. There are 4 main operations,

- NOT
- AND
- OR
- XOR

The effect of these operations is shown in the truth tables below.

## The NOT Gate

Takes only one input and returns the opposite. Sometimes this gate is referred to as an inverter.

Input A | Output |

0 | 1 |

1 | 0 |

## The AND Gate

Takes two inputs, the output is true if both inputs are true.

Input A | Input B | Output |

0 | 0 | 0 |

0 | 1 | 0 |

1 | 0 | 0 |

1 | 1 | 1 |

## The OR Gate

Takes two inputs, the output is true if either of the inputs is true.

Input A | Input B | Output |

0 | 0 | 0 |

0 | 1 | 1 |

1 | 0 | 1 |

1 | 1 | 1 |

## The XOR/EOR Gate

The exclusive or gate takes two inputs. The output is true if one input is true but not both.

Input A | Input B | Output |

0 | 0 | 0 |

0 | 1 | 1 |

1 | 0 | 1 |

1 | 1 | 0 |

## Getting All Logical In Visual Basic - NOT

The following program performs a **NOT** operation on an integer variable.

`Dim a As Integer = 13`

Dim b As Integer

b = Not a

Console.WriteLine(b)

Console.ReadLine()

The output you get from this program is -14. Let's see if that's what we should be expecting. We started with a value for a of 13. In binary this is,

**00001101**

If we invert each of these bits, we get the following,

**11110010**

In denary, this value is **-128 + 64 + 32 + 16 + 2 = -14**.

## Getting All Logical In Visual Basic - AND

The following program performs a **AND** operation on the integer variables **a** and **b**.

`Dim a As Integer = 13`

Dim b As Integer = 17

Dim c As Integer

c = a And b

Console.WriteLine(c)

Console.ReadLine()

The output you get from this program is 1. Is that right? The values for a and b are 13 and 17 respectively. In binary this is,

**00001101**

**00010001**

The AND operation returns a bit only where the bits from both numbers are set to 1. The only bit this happens for is for the unit bit. The answer is therefore 1.

## Getting All Logical In Visual Basic - OR

The following program performs a **OR** operation on the integer variables **a** and **b**.

`Dim a As Integer = 13`

Dim b As Integer = 17

Dim c As Integer

c = a Or b

Console.WriteLine(c)

Console.ReadLine()

The output from this program is 29. Is that what we expect? The values for a and b are 13 and 17 respectively. In binary this is,

**00001101**

**00010001**

The OR operation returns a bit if either or both of the bits are set to 1. In this case, this gives the new binary number,

**00011101**

This is equal to **16 + 8 + 4 + 1 = 29**

## Getting All Logical In Visual Basic - XOR

The following program performs a **XOR** operation on the integer variables **a** and **b**.

`Dim a As Integer = 13`

Dim b As Integer = 17

Dim c As Integer

c = a Xor b

Console.WriteLine(c)

Console.ReadLine()

The output from this program is 28. Is that what we expect? The values for a and b are 13 and 17 respectively. In binary this is,

**00001101**

**00010001**

The XOR operation returns a bit if either but not both of the bits are set to 1. In this case, this gives the new binary number,

**00011100**

This is equal to **16 + 8 + 4 = 28**

## Having A Go

- Write a program that allows you to input 2 integers at the keyboard. The program should report the result of the AND, OR and XOR operations on these numbers as well as the NOT operation on each of the two numbers.
- Use your program to give you the answers to the following
- 36 AND 49
- 47 XOR 36
- 82 OR 15