003
03.09.2003, 11:31 Uhr
0xdeadbeef
Gott (Operator)
|
Wie wärs damit:
C++: |
char *assign_bitmask(char *buf, size_t len, long long nr) { size_t i; if(len > sizeof(long long) * 8) len = sizeof(long long) * 8; i = len; while(i > 0) { --i; buf[len - i] = (nr >> i & 1) == 0 ? '0' : '1'; } buf[len] = 0; return buf; }
int main() { char buffer[7]; printf("%s\n", assign_bitmask(buffer, 6, 42)); }
|
--edit: patch damits läuft --edit: patch für Längenangabe. --edit: patch für standard compliance und lange Zahlen. (size_t, long long) --edit: patch um bogus output zu vermeiden (len > sizeof(long long) * 8) -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 03.09.2003 um 11:50 Uhr von 0xdeadbeef editiert. |