Games
Problems
Go Pro!

Bit Toggle

Reference > Science > Technology > Beginner Programming Tips
 

Toggling a value between 0 and 1 is something that computer programmers do alot. It's useful if you are running a loop, and each time you pass through the loop you want to do an alternating action. For example, if you are creating a two-player game, the first time through the loop it's Player One's turn, but then the second time it's Player Two's turn, and so on.

Have you ever used the piece of code shown below?
 

Dim MyToggle As Integer

'Toggle The Value Between Zero And One
If MyToggle = 0 Then
   MyToggle = 1
Else
   MyToggle = 0
End If


The code above works. It's what I used to do when I first started programming. It's readable, and it's obvious what's happening. However, it isn't the most efficient way of toggling a value. There is a method which is slightly faster. Of course, slightly faster is irrelevant to most of us, but if you are programming a high speed game, you need to make every nanosecond count. Here's the alternate way of toggling a bit:
 

Dim MyToggle As Integer

'Toggle The Value Between Zero And One
MyToggle = 1 - MyToggle


That's it? Yes, that's it. Just one line of code. Think about it. If MyToggle = 1, when you subtract it from one, you get zero. And if it equals zero, when you subtract it from one you get one.

It's simple, and it's straightforward, and once you get used to seeing it, it's obvious what it's doing. It makes your code a little shorter and neater.

You could also use this code to toggle between one and two, but you need to make sure you initializethe toggle value to either one or two before you start the toggle process:
 

Dim MyToggle As Integer
MyToggle = 1

'Toggle The Value Between One And Two
MyToggle = 3 - MyToggle

Questions

1.
How would you toggle between zero and negative one, using just one line of code?
2.
How would you toggle between two and three?
3.
How would you toggle between one and three?
4.
How would you toggle between five and ten?
Assign this reference page
Click here to assign this reference page to your students.
Unit IndexUnit Index
Random Number GeneratorsRandom Number Generators
 

Ask Professor Puzzler

Do you have a question you would like to ask Professor Puzzler? Click here to ask your question!
Get a FREE Pro-Membership!
Educators can get a free membership simply by sharing an original lesson plan on our Articles for Educators page!


Like us on Facebook to get updates about new resources
Home
Pro Membership
About
Privacy