I'll byte. I avoided commenting on this yesterday on the principle that "if you have to explain the joke then it's no longer funny", but here's my interpretation.

On Oct 31, 2005, at 11:54 am, Holly Bostick wrote:

There are 10 kinds of people in the world
Those who understand binary, and those who don't

This is a common sig on computer forums, and it has always bothered me.

Bear in mind that:
  0 in binary integer = 0 in decimal
  1 in binary integer = 1 in decimal
  10 in binary integer = 2 in decimal
  11 in binary integer = 3 in decimal

So, converting the binary literal English it says: "there are two kinds of people in the world, those who understand binary, and those who don't". But it always seemed to me to be out of place on really technical computer forums, because we know that computers don't really use binary. They use two states of voltages which can be represented by 1s and 0s and which can therefore conveniently be used to do binary maths. BUT those 1s and 0s don't HAVE to represent traditional binary numbers, we can use them in any way that's convenient to us - for instance, "twos complement" may be used for the representation of negative numbers and (in an an 8-bit system) 10000000 is the highest number you can have - adding one causes the counter to roll over and represent a negative number.

So in the case of "there are 2 kinds of people in the world, those who understand binary, and those who don't" we have the people who don't understand binary, the people who do understand binary... but who are the OTHER PEOPLE mentioned?

Look at this again:
  10 in binary = 2 in decimal = people who understand binary?
  1 in binary = 1 in decimal = people who don't understand binary?
  0 in binary = 0 in decimal = who are these people?

An explanation of the difference between natural numbers & integers is relevant at this point. Back in the old days we counted on the basis of " Bill has two cows, Dave has one cow, Joe doesn't have any cows" (natural numbers) but once society invented taxmen, accountants & bankers these people needed a way to represent "doesn't have any cows" on their spreadsheets and so zero was invented ("Bill: 2 cows, Dave: 1 cows, Joe: 0 cows"). When we count in a number-set that includes zero (but not fractions, they're not relevant to this discussion) we're counting in integers.

So the phrase "there are two kinds of people" uses NATURAL numbers: there are one kind of people that understand, a second that don't. Any computer programmer worth his salt knows that using two bits to represent whether people understand binary or not is a waste of a bit - in a database of a million people you've just wasted a meg!

Any c programmer would represent this:
  1 = people who understand binary
  0 = people who don't understand binary

or:

  if ( understands_binary )
     printf ("Understands binary!");
  else
     printf ("Doesn't understand binary!");

Before you protest that I've turned this into a boolean, however you look at it you only need one bit to represent positive natural numbers of 2 or less.

There are 3 kinds of people in the world:
Those who can count, and those who can't.

Whilst funny on it's own, my initial reaction was that this could be interpreted as a satirical comment on the "binary" joke. For me, looking at it like that, it works on a bunch of different levels. Summary: those who can count, those who can't, and those who *think* they understand binary.

I really ought to get some work done today, too.

Stroller.

--
gentoo-user@gentoo.org mailing list

Reply via email to