@kirby @vee ah, have some more then :nigga3c:
#include <stdint.h> #include <stdio.h> #define S "%s" #define _(x) x##ntf int main() { char*$=(char*)(uint64_t[]){ ~18417912228290092938ull, ~15780601667991084186ull, ~10420927750181526157ull}; _(pri)(S S S,$,8+$,16+$); }what about comparing integers without actually comparing them? (functionalmaxxing in C)
int bitdigit(size_t i) { return i ? 1 + bitdigit(i >> 1) : 0; } size_t unit(size_t digits) { return digits ? (unit(digits - 1) << 1) | 1 : 0; } enum { COMPAR_BIGGER = -1, // x > y COMPAR_EQUAL, // x == y COMPAR_SMALLER, // x < y }; int compar(size_t x, size_t y) { const int dx = bitdigit(x); const int dy = bitdigit(y); return dx | dy ? dx ^ dy ? bitdigit(x | y) ^ dx ? COMPAR_SMALLER // : COMPAR_BIGGER : compar(x & unit(dx - 1), y & unit(dy - 1)) : COMPAR_EQUAL; }heres a neat program that prints out its arguments recursively, you should be able to read this at least
#include <stdio.h> int main(int argc, char **argv) { return puts(*argv++), argc == 1 ? 0 : main(--argc, argv); }