------------------------------------------------ BinaryAdd1 TM 0 * * * s1 ; start at the leftmost digit s1 0 0 R s1 ; find rightmost digit s1 1 1 R s1 s1 _ _ L s2 s2 0 1 * s3 ; now at the rightmost digit s2 1 0 L s2 ; add 1 and carry to left s2 _ 1 * s3 ; in case we run off the front end s3 0 0 L s3 ; move back to the leftmost digit s3 1 1 L s3 s3 _ _ R halt ; halt at the leftmost digit ------------------------------------------------