In honour of this auspicious moment here is some fun binary maths.

What is this sequence 2,3,7,11,13,19,25,… ?

It is actually the sequence of binary dropped primes. If you want a longer list it is Sloane sequence A014580 These are the primes when you multiply in binary but always drop the carry bits. For example 3 x 3 = 11_{2} x 11_{2} = 101_{2} = 5. I dropped a carry that would normally add 4 to the answer so 5 is not a binary dropped prime. 9 is not prime (I will drop the “dropped” from now on) either, because it is 9 = 3 x 7.

A curious feature of these primes is that if you reverse the digits in binary you always get another prime so 11 = 1011_{2} and 13 = 1101_{2} are both primes. All primes except 3 must have an odd number of non-zero binary digits because otherwise they are a multiple of 3.

In honour of the date and time it seems appropriate to factorise some numbers that consist of all ones in binary

1111 = 11 x11 x 11

111111 = 11 x 111 x 111

1111111 = 1011 x 1101

11111111 = 11 x 11 x 11 x 11 x 11 x 11 x 11 x 11

Others that I missed are prime. You can probably see that a number in this form can only be a binary dropped prime it the number of digits is a normal prime, but the converse is not true because 127 = 11 x 13 in decimal terms

As well as multiplication you can also do binary dropped addition and this gives you a ring which is a unique factorization domain. Don’t worry about subtraction because it is the same as addition. You can also do modulo arithmetic with the rule that a = b (mod n) iff a+b is a multiple of n.

Are these useful or are they just a curiosity for setting math puzzles? In fact they can be used to generate interesting cyclic binary linear codes . Binary linear codes are sets of codewords consisting of sequences of bits that are closed under binary dropped addition. There are always 2^{k} codewords for some k in such a binary linear code and if the block length is n it can be used to code k bits into n bits in a way that is easy to reverse and very efficient for error-correcting. Cyclic codes have the extra property that you can cycle the digits of the code by shifting them left and moving the last digit to the first. In a cyclic code, when you cycle a codeword in this way you always get another codeword in the set.

The simplest non-trivial cyclic codes are parity codes where the number of non-zero bits in a codeword is always even, In this case n = k+1 so encoding consists of adding a parity bit to a k-bit string. Now remember that a number with an even number of non-zero bits is always a multiple of 3 in binary dropped arithmetic, so can we generate other cyclic codes by using multiples of other numbers in binary dropped arithmetic?

(11 minutes and 11 .111 seconds to go, now observing a minutes silence…)

The answer is yes, but it only works when the numbers are factors of the numbers which are sequences of ones. This is because cycling the numbers is equivalent to working modulo such a number. So we can have codes with a block length that are a multiple of three where all codewords are multiples of 111. More interesting examples are codes with 7 bits using multiples of 1011 or 1101. This is the familiar Hamming code Ham(7,4) which is linked to the Fano plane and the octonions. Even better a string of 23 ones must factorize in binary dropped arithmetic into two number of 12 binary digits, because this would be needed for the Golay code, but it is 11.11.1111… so I will have to check the factorization another time.