atenative.html'>stack</a> of zeros and ones can be encoded in a single number by keeping with bit-shifting and incrementing.</p>

<ul>
	<li>Pushing a <kbd>0</kbd> onto the stack is equivalent to doubling the number.</li>
	<li>Pushing a <kbd>1</kbd> is equivalent to doubling and adding 1.</li>
	<li>Popping is equivalent to dividing by 2, where the remainder is the number.</li>
</ul>

<pre>
int
push(int stack, int bit) {
	return (stack << 1) + bit;
}

int
pop(int stack, int *acc) {
	*acc = stack & 0x1;
	retur