Язык Си в примерах/Система счисления

Материал из testwiki
Версия от 16:46, 16 апреля 2020; imported>DannyS712 (<source> -> <syntaxhighlight> (phab:T237267))
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шаблон:Содержание «Язык Си в примерах»

Число 235 в десятичной системе счисления есть

23510=2102+310+5

Число 235 в восьмеричной системе счисления есть

2358=282+38+5

Пусть Q — натуральное число. Тогда представить число N в Q-ичной системе счисления означает представить число N в виде суммы различных степеней Q с целыми коэффициентами из диапазона [0;Q1]:

N=a0Q0+a1Q1+a2Q2+...

Q-ичная запись числа N — это набор коэффициентов (am,am1,...,a0),где am — последний ненулевой коэффициент.

Вопросы

1. Докажите методом математической индукции, что это разложение существует и единственно. Для тренировки разберите отдельно случай Q=2: любое натуральное число представляется в виде суммы различных степеней двойки и притом единственным образом.

Примеры:

  • 110=12
  • 210=020+121=102
  • 310=120+121=112
  • 410=020+021+122=1002
  • 510=120+021+122=1012
  • 1510=120+121+122+123=11112
  • 1610=020+021+022+023+124=100002
  • 25510=120+121+122+123+124+125+126+127=111111112

2. Что делает приведённая ниже программа?

#include <stdio.h>
void main ()
{
    int n; 
    scanf ("%d", &n);
    while(n)
    {
        printf("%d", n%2);
        n /= 2;
    }
}

3. Напишите программу, которая введённое натуральное (число в десятичной записи) переводит в восьмеричную систему счисления.

Шаблон:BookCat