The Degenerate Way to Count in Binary
I don't know if it's worth it to know how to count in binary. Irrespective of it I'll share some observations I made a year back.
How Numbers are Written ....
Radix(orBase) : The number of unique symbols or digits in a system. If a system has a radix R, the allowable digits are 0 through R-1. i.e. radix 5 means, digits from 0 to 4 .
Counting is done recursively , here for radix 5 the numbers will be written as: 0,1,2,3,4,10,11,12,13,14,20,21,22,23,24,30... so on
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15.... This is for decimal numbers
We can observe (10) in base 5 == (5) in base 10
The maximum unique digits in base 5 is five, so counting from 0-4 we exhaust all our options , to write the next number we need another digit. Hence we bring a 1 ahead and reset the numbers right of it. The numbers after 4 becomes 10,11,12,13,14 again we exhaust all the options with 1 fixed , so we make it 2 and reset the numbers in right of it to 0, now we'll have five more numbers 20,21,22,23,24 this goes on till 44. Here we've exhausted all numbers that can be created with 2 spaces so we'll need another space and the next number will be (100)base5.
The main observation is : For Radix (N) the maximum unique numbers by r digits == N^r eg. Maximum unique numbers in decimal number system by 2 digits ==> 10^2 = 100 0 to 99 For Radix (N) a number written in the format (N-1) (N-1) (N-1) (N-1) ...for r terms = N^r – 1 (N-1) 00000.... upto r zeros = N^r
eg. (444) base 5 = (5^3-1) i.e 124 in decimal eg. (1000) base 9 = 9^3 = 729
Counting in Binary
Now that we're clear with the basics
1> consecutive 1's written r times = 2^r-1 eg. (1111)2 => 2^4-1 = 15
2> 1 followed by r zeros = 2^r eg. (100000)2 => 2^5 = 32
3> Sticking 1 zero after a number means multiplying with 2 eg. (10)2 = 2 then (100)2 = 2*2 = 4
4> Sticking one 1 after a number means multiplying with 2 + 1 eg. (111)2 = 7 then (1111)2 = 7 X 2 +1 = 15
5> Memorise the first 4 binary numbers – (0)2 = 0 – (1)2 = 1 – (10)2 = 2 – (11)2 = 3
Some Examples:
eg.1) Say we have (11001)2, > we know 11 = 3 then the number = ((3 x 2) x 2)x2+1 = 25
eg.2) (11110110)2 > we know 1111 = 15 (i.e 2^4-1) , the number will be ((((15x2)x2+1)x2+1)x2) = 246
eg.3) Convert 211 to binary > we can think 211 = 255-44 > The 255 = 2^8-1 , so 8 consecutive 1s, and we remove 44 i.e(32+8+4) from it , > (11111111)2 is 255, now we remove the 1s from 2^5 , 2^3, 2^2 s places and leave them with 0s > (11010011)2 is 211
Thats it
Thats pretty much it. These are just patterns , once you see them you can't unsee them. Whether it's actually useful , I still don't know.