Я только начал учить себя Си из программирования Си К.Н Кинга: Современный подход (2ndEdn).
Мне это нравится, но я надеюсь выложить странный вопрос для совета, если это уместно, потому что, к сожалению, у меня нет наставника, и некоторые вопросы поднимают больше вопросов, чем они отвечают!
Я задаю вопрос о введении целого числа и отображении его в восьмеричном виде. Там написано, что есть простой способ сделать это, но об этом позже. Я придумал следующее:
// Convert a number to octal
int n, n2, n3, n4, n5, n6;
printf("Enter a number between 0 and 32767: ");
scanf("%d", &n);
n6 = n % 8;
n5 = (n / 8) % 8;
n4 = ((n / 8) / 8) % 8;
n3 = (((n / 8) / 8) / 8) % 8;
n2 = ((((n / 8) / 8) / 8) / 8) % 8;
printf("%d%d%d%d%d", n2, n3, n4, n5, n6);
Все работает хорошо, но я не очень хорошо разбираюсь в математике, и мне было интересно, есть ли более эффективный способ сделать это или я сделал это единственно возможным способом ...
Если у кого-то еще есть книга, это Q4 с.71.
Спасибо за ваше время.
Andrew
P.S. Я заглянул в поисковик, но не смог найти ничего, что делало бы это «медленнее»!