As the old joke goes there are 10 types of people in the world. Those who understand Binary and those who don't. There seem to be fewer of those Binary understanding people in the world today. Or do I just ravel in the wrong circles? Does computer science really require a knowledge of different number systems anymore?
I learned different number bases in around 5th or 6th grade. I thought they were a blast. I played around counting in things like base 5 and 7 for weeks afterwards. The pattern and structure of numbers just made so much sense to me after that and it was fun seeing how it worked in different variations.
Then when I started taking computer science classes and Binary and Octal (Octal works very nicely to group things on computers with 12 bit words) were part of the daily vocabulary I felt right at home. Later using Hexadecimal was also pretty easy though I admit to being geek enough that I had a calculator that used Decimal, Hex, Octal and Binary and I used it quite a bit.
Back in the day I used Octal and Hex arithmetic to work my way through stack dumps, crash dumps, and to make patches in code of all sorts. Binary was the number system of choice for bit flags and setting and checking bits was something I did every day - especially when I was doing OS development those many years ago. I was as likely to want to know an ASCII code in Octal as Decimal or Hex when looking at data dumps. Today I still enjoy my binary coded decimal clock. In spite of the fact (or perhaps because of the fact) that it drives my wife crazy when I point to it and ask her what time it is. There was a time when she could have told me faster than I can but she's a little out of practice.
These days it seems as though Binary, Hex and especially Octal have fallen into disuse. Memory is cheap so people fell ok using a whole word to serve as a Binary flag. Sure there are people doing programming in C/C++ where they occasionally look at raw data but how many recognize that "20" means a space? Or maybe I'm wrong and people are teaching it. But are they teaching it as fun?
I've never been a math geek. Sad but true. Still learning binary and octal and hex (and more) gave me an appreciation for how numbers really worked. Just like learning different natural languages helps people understand how their own works I found that learning these other systems gave me a deeper understanding of Decimal. It was a great thing to learn at an early age. Its a shame that it doesn't seem to be part of elementary school math anymore.
I don't see many people getting down to the bits and bytes anymore - especially not to the bits. Are the days when one needs to know the bits gone or are they still around? Does understanding Binary (at least) still add an important component to a liberal computer science education? What do you think?
[Welcome Oregon Ducks from CIS 210 - if you are interested in a possibly interesting binary number project check out Binary Number Game.]