« first day (541 days earlier)      last day (855 days later) » 

08:23
I made a binary adder in BitCycle:
 v  <           > > !
?B\A^>   >   >   v
  >  \  > \\v   ^=~
?B/Av     v<    v+v
 ^  <    ^=  ~
  v  \  ^
 !+v   v  +v >    v
       >~  ~ ~   v=
                 v+
               0 Bv
     ^            <
Input and output are little-endian (i.e. least significant bit first). Can handle numbers of any size. Not really golfed.
Because it's not golfed, it can be pretty neatly divided into sections:
 v  <
?B\A^
  >
?B/Av
 ^  <
Takes the two input numbers from ? and feeds them into two loops, where we split off the first bit of each on each iteration. Two collectors are necessary to prevent the code from looping forever on long numbers. The single bit from each number exits from the >.
  >   >
 > \\v
   v<
  ^=  ~
 ^
v  +v >
>~  ~ ~
This is the first half-adder, with extra logic to feed a 0 back into it if it's only given one input. The carry bit exits from the bottom rightmost > and the sum bit from the top rightmost >.
> > !
 v
^=~
v+v
This is the second half-adder, much simpler because it doesn't have the feedback logic. It doesn't need it because its inputs (one from the first half-adder, one from the previous step's carry bit) are guaranteed to be present. The carry bit exits from the bottom right v and the sum bit from the top right >, where it goes into ! and is printed.
 v
v=
v+
B
This part does an OR on the two half-adders' carry bits and puts the resulting final carry bit in the B collector. You'll notice on the full program that there's a 0 which goes into B at the beginning for the initial carry bit.
 v  \
!+v
Finally, this part prints the carry bit if there are no more input bits and the carry bit is 1. As long as there are data bits, one of them will encounter the splitter \ before the carry bit gets there, resulting in the carry bit continuing upward and feeding into the second half-adder instead.

« first day (541 days earlier)      last day (855 days later) »