#include #include long int ZahlBinaer(int num) { int sum = 0; for (int mult = 1, mod = 2; num > 0; mult *= 10, mod *= 2) { if (num % mod) { sum += mult; num -= mod / 2; } } return sum; } int ZahlOktal(int num) { int sum = 0; for (int mult = 1, mod = 8, div = 1; num > 0; mult *= 10, mod *= 8, div *= 8) { if (num % mod) { sum += (num % mod / div) * mult; num -= num % mod; } } return sum; } int main(int argc, char *argv[]) { int doBin = 0; int doHex = 0; int doOct = 0; int num = 0; for (int i = 1; i < argc; i++) { if (argv[i][0] != '-') { if (num == 0) { num = atoi(argv[i]); printf("Dezimal: %d\n", num); if (argc == 2) { doBin = 1, doHex = 1, doOct = 1; } } else { printf("Nur eine Zahl ist erlaubt!\n\n"); printf("Nur folgende Parameter sind erlaubt:\n--b Binaersystem\n--o Oktalsystem\n--h Hexadezimalsystem"); return 0; } } else { int j = 2; while (argv[i][j] != '\0') { if (argv[i][j] == 'b') { doBin = 1; } else if (argv[i][j] == 'o') { doOct = 1; } else if (argv[i][j] == 'h') { doHex = 1; } else { printf("Unerlaubte Option: --%c\n", argv[i][j]); return 0; } j++; } } } if (doBin) { printf("Binär: %ld\n", ZahlBinaer(num)); } if (doHex) { printf("Hexadezimal: %X\n", num); } if (doOct) { printf("Oktal: %d\n", ZahlOktal(num)); } return 1; }