Go Down

Topic: Base prefix notation (Read 2 times) previous topic - next topic


Though why anyone would consider expressing a literal of more than four bits in binary is beyond me.

I've seen (and used) occasions where on a single byte the placement of the high bits is more important than the value. Particularly bit-masking for flags, it's easier (for me) to see the 6th, 4th, 2nd and 1st bits are high (counting 1-8 starting with LSb on the right) on 0b00101101 instead of 0x2D or 45 (let alone 055 (yes, I can learn)).


(Side note about the "beings with 10 fingers" comment... Back when I used to wait tables I developed a finger counting method that, while is actually base 5 (1,2,3,4,10,11,12,13,14,20, etc...), I called "groups of 5" that I used for counting number of chairs or people in a room. Quickly move my fingers behind my back, and then when back in the safety of the waiter's station or kitchen count 25 for the left thumb, 5 for each left finger, and 1 for each right digit. To the customers it just looks like I'm standing there looking over the room with my hands behind my back. My short-term memory for numbers is so short, I needed to keep track on my fingers so I didn't loose count if someone asked me where the bathroom is... So much for base 10 being default...) ;)

There actually is a combination base-5 / base-10 method called "chisanbop".

Right fingers (except for thumb) = 1 unit per finger
Right thumb = 5 units
Left fingers (except for thumb) = 10 units per finger
Left thumb = 50 units

And as for losing track of numbers, I too am very distractable. Only for me it's not limited to numbers.
I wonder: why is it considered less socially acceptable to refuse to acknowledge someone who is interrupting you, than it is to interrupt someone? Why isn't the interrupter the "bad guy"?



int c3=076; <--- This is troublesome
int c4=098; <--- Ahhhh!!!!!! (actually throws a compiler error!)

I don't know why it always makes me crack up, but I love this comment in the 2nd edition of K&R:

Everyone's favorite trivial change: 8 and 9 are not octal digits

So pre-ANSI, your 098 might not have thrown an error, but I have no idea what it would do.


As for a leading zero for octal: I doubt that a worse piece of design in programming language syntax exists anywhere. Except maybe for those programming languages which number the months of the year from 0 to 11 (such as C and ECMAScript).

Let's see: I believe that the relevant rule in many programming languages (including the Arduino programming environment) goes like this:
Numbers with only decimal digits (0 through 9) are decimal.
Except if they begin with 0, in which case they are octal.
Except if they contain a decimal point, in which case they are decimal after all.
Please correct me if I am wrong.


Except maybe for those programming languages which number the months of the year from 0 to 11 (such as C and ECMAScript).
I believe if you read the C language standard, you will find not a single reference to months of the year, or how they should be subscripted.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Go Up