Chip, 3815+3 = 3818 bytes
+3 bytes for flag -w
*
,xZ.
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
K K
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
K `K
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
K K
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
K `K
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
K `K
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
K K
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
K K
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
K K
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@'*|
K aK
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@'*|
K eK
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@'*|
K fK
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'|
K K
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
K K
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
K K
,xZ<
`@'`.
,xZ~<
`@' |
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'`.
,xZ~<
`@'*}T
,xZ~<
`@','
K K
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'|
K `K
,xZ~<
`@','
,xZ<
`@'|
,xZ<
`@'`.
,xZ~'
`@'
Try it online!
Oof.
It's a beeping massive binary counter: 333 bits are needed to express 1 googol, so there are 333 half-adders @
and 333 registers Z
. (Actually only 100/log10(2) = ~332.2 bits are required, but this solution can't take advantage of those massive savings). There are also a few periodic caches K
, which are required for this to even run correctly.
Note about the TIO: instead of using -w
(which is a fake stdin consisting of infinite null bytes), it uses regular input. The result is that it terminates at the end of input, rather than attempting to outlive the universe by a factor of 1080.
The termination condition is encoded by the presence or absence of ~
near the Z
s. If you worked from the bottom up, writing a '1' when you see a ~
, and '0' when you don't, you'll have the binary representation for 1 googol.
Here is a TIO that only prints 100 times. This one does use -w
, showing off the termination condition.
Also scattered around are *a
, *e
, and *f
. These work together to produce an ASCII '1' for the output. If they were absent, null characters would be printed instead.