В настоящее время я работаю над проектом на C, который возьмет два 8-битных двоичных числа и преобразует их в десятичные значения. Я хорошо разбираюсь в побитовых операторах C и в том, как они обрабатывают числа, мой вопрос связан с синтаксисом.
Банкомат Моя программа очень проста:
int main() {
char *inp1;
char *inp2;
unsigned long binNum1;
unsigned long binNum2;
printf("Enter the first binary number: ");
scanf("%s", inp1);
printf("Enter the second binary number: ");
scanf("%s", inp2);
binNum1 = strtoul(inp1, NULL, 2);
binNum2 = strtoul(inp1, NULL, 2);
unsigned long orVal = binNum1 | binNum2;
unsigned long andVal = binNum1 & binNum2;
unsigned long exclVal = binNum1 ^ binNum2;
printf("Your or value is: %lu", orVal);
printf("Your and value is: %lu", andVal);
printf("Your exclusive value is: %lu", exclVal);
return 0;
}
По сути, я просто хочу получить значение ORing, ANDing и EXCLing двух десятичных значений каждого двоичного числа. Тем не менее, я получаю ошибку сегментации при запуске этого. Я уверен, что это связано с синтаксисом, но я не могу найти много онлайн для такого рода проблемы.