У меня есть домашнее задание. Вопрос:
Напишите функцию, которая принимает в качестве параметра одно целое число, ввод int и возвращает беззнаковый символ
такой что:
a- если входное значение отрицательное или больше 11 111 111, или содержит цифру, которая не равна 0 или 1; тогда функция будет
распечатать сообщение об ошибке (например, «неверный ввод») и вернуть 0,
б- в противном случае; функция будет предполагать, что входное значение base-10 представляет битовую последовательность, и возвращает битовую модель только для величины, соответствующую этой последовательности.
Например: если входное значение равно 1011, возвращаемое значение равно 11, а если входное значение равно 1110, возвращаемое значение равно 14
Это моя работа для а, и я застрял на б. Как я могу получить битовую последовательность для данного целочисленного ввода?
int main()
{
int input = 0;
printf("Please type an integer number less than 11,111,111.\n");
scanf("%d",&input);
if(input < 0 || input > 11111111)
{
printf("Invalid Input\n");
system("PAUSE");
return 0;
}
for (int i = 0; i < 8; i++)
{
int writtenInput = input;
int single_digit = writtenInput%10;
if(single_digit == 0 || single_digit == 1)
{
writtenInput /= 10;
}
else
{
printf("Your digit contains a number that does not 0 or 1. it is invalid input\n");
system("PAUSE");
return 0;
}
}
printf("Written integer is %d\n",input);
system("PAUSE");
return 0;
}