#include <stdio.h>
#include <stdbool.h>
int main() {
long long num;
int base;
printf("Enter the number to convert: ");
printf("Enter the base of the number (e.g., 2 for binary, 8 for octal): ");
long long decimalValue = 0;
long long power = 1;
bool isNegative = false;
if (num < 0) {
isNegative = true;
num = -num;
}
while (num > 0) {
int digit = num % 10;
if (digit >= base) {
printf("Error: Invalid digit '%d' for base %d\n", digit
, base
); return 1;
}
decimalValue += digit * power;
power *= base;
num /= 10;
}
if (isNegative) {
decimalValue = -decimalValue;
}
printf("The decimal equivalent is: %lld\n", decimalValue
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CgppbnQgbWFpbigpIHsKICAgIGxvbmcgbG9uZyBudW07IAogICAgaW50IGJhc2U7ICAgICAgCgogICAgcHJpbnRmKCJFbnRlciB0aGUgbnVtYmVyIHRvIGNvbnZlcnQ6ICIpOwogICAgc2NhbmYoIiVsbGQiLCAmbnVtKTsKCiAgICBwcmludGYoIkVudGVyIHRoZSBiYXNlIG9mIHRoZSBudW1iZXIgKGUuZy4sIDIgZm9yIGJpbmFyeSwgOCBmb3Igb2N0YWwpOiAiKTsKICAgIHNjYW5mKCIlZCIsICZiYXNlKTsKCiAgICBsb25nIGxvbmcgZGVjaW1hbFZhbHVlID0gMDsKICAgIGxvbmcgbG9uZyBwb3dlciA9IDE7IAoKICAgIGJvb2wgaXNOZWdhdGl2ZSA9IGZhbHNlOwogICAgaWYgKG51bSA8IDApIHsKICAgICAgICBpc05lZ2F0aXZlID0gdHJ1ZTsKICAgICAgICBudW0gPSAtbnVtOyAKICAgIH0KCiAgICB3aGlsZSAobnVtID4gMCkgewogICAgICAgIGludCBkaWdpdCA9IG51bSAlIDEwOyAKCiAgICAgICAgaWYgKGRpZ2l0ID49IGJhc2UpIHsKICAgICAgICAgICAgcHJpbnRmKCJFcnJvcjogSW52YWxpZCBkaWdpdCAnJWQnIGZvciBiYXNlICVkXG4iLCBkaWdpdCwgYmFzZSk7CiAgICAgICAgICAgIHJldHVybiAxOyAKICAgICAgICB9CgogICAgICAgIGRlY2ltYWxWYWx1ZSArPSBkaWdpdCAqIHBvd2VyOyAKICAgICAgICBwb3dlciAqPSBiYXNlOyAgICAgICAgICAgICAgICAgCiAgICAgICAgbnVtIC89IDEwOyAgICAgICAgICAgICAgICAgICAgCiAgICB9CgogICAgaWYgKGlzTmVnYXRpdmUpIHsKICAgICAgICBkZWNpbWFsVmFsdWUgPSAtZGVjaW1hbFZhbHVlOwogICAgfQoKICAgIHByaW50ZigiVGhlIGRlY2ltYWwgZXF1aXZhbGVudCBpczogJWxsZFxuIiwgZGVjaW1hbFZhbHVlKTsKCiAgICByZXR1cm4gMDsKfQ==