Files
c3c/resources/examples/binarydigits.c3
2025-02-27 11:10:41 +01:00

26 lines
487 B
Plaintext

module binarydigits;
import std::math;
import std::io;
fn void main()
{
for (int i = 0; i < 20; i++)
{
DString s = bin(i);
defer s.free();
io::printf("%s\n", s);
}
}
fn DString bin(int x)
{
int bits = x == 0 ? 1 : 1 + (int)math::log2(x);
DString str;
str.init(mem);
str.append_repeat('0', bits);
for (int i = 0; i < bits; i++)
{
str.set((usz)(bits - i - 1), x & 1 ? '1' : '0');
x >>= 1;
}
return str;
}