Trochu jsem si hrál s binárním výpisem číselné hodnoty v C, a vyšel mi tenhle prográmek. Potřeboval jsem si něco ověřit ohledně binárních čísel, a tak jsem napsal tohle. Není moc velký, ani převratný, ani originální, ale občas se může hodit mít tenhle algoritmus po ruce. Vezme totiž jakoukoli hodnotu typu int a vypíše ji v binární podobě. I záporná čísla, bez ohledu na to s kolika bitovým intem pracuje počítač.
Výpis programu vypadá takhle:
#include <stdio.h> #include <limits.h> #define INT_BITU (sizeof(int)* 8) void printBinary(int x) { unsigned int binaryValue[INT_BITU]; int i, tmp = 1; for (i = 0; i < INT_BITU; i++) { binaryValue[i] = x & tmp ? 1 : 0; tmp <<= 1; } printf("%12d = ", x); for (i = INT_BITU - 1; i >= 0 ; i--) printf("%u", binaryValue[i]); printf("\n"); } int main(int argc, const char * argv[]) { printf("int ma na tomto pocitaci %d bitu\n", (int)(INT_BITU)); printf("MAX INT:\n"); printBinary(INT_MAX); printf("MIN INT:\n"); printBinary(INT_MIN); printBinary(7); printBinary(120); printBinary(-15); return 0; }