Я только начал учить себя C из книги KN King's C Programming: A Modern Approach (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.
Спасибо за ваше время. но я надеюсь опубликовать здесь странный вопрос для совета, если это уместно, потому что ...
Я только начал учить себя Си из книги К.Н. Кинга «Программирование на Си: современный подход» (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.
Спасибо за ваше время. но я надеюсь опубликовать здесь странный вопрос для совета, если это уместно, потому что ...
Я только начал учить себя Си из книги К.Н. Кинга «Программирование на Си: современный подход» (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.
Спасибо за ваше время. Эндрю
PS Я посмотрел в поисковике, но не нашел ничего, что делало бы это «медленнее»!