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

Содержимое удалено Содержимое добавлено
Поставил теги <source>
м оформление
Строка 1:
{{Содержание «Язык Си в примерах»}}
 
Число 235 в десятичной системе счисления есть
: <math>235_{10} = 2\cdot 10^2 + 3 \cdot 10 + 5 \,\!</math>
Число 235 в восьмеричной системе счисления есть
: <math>235_{8}= 2\cdot 8^2 + 3 \cdot 8 + 5 \,\!</math>
 
 
Пусть Q натуральное число. Тогда представить число N в Q-ичной системе счисления означает представить число N в виде суммы различных степеней Q с целыми коэффициентами из диапазона [0..Q-1]:
<math>N = a_0\cdot Q^0 + a_1\cdot Q^1 + a_2 \cdot Q^2 + ...\,\!</math>
Q-ичная запись числа N это набор коэффициентов <math>(a_m,a_{m-1},...,a_0)\,\!</math>,где <math>a_m\,\!</math> &mdash; последний ненулевой коэффициент.
 
Пусть <math>Q</math> — натуральное число. Тогда представить число <math>N</math> в Q-ичной системе счисления означает представить число <math>N</math> в виде суммы различных степеней <math>Q</math> с целыми коэффициентами из диапазона <math>[0..; Q-1]</math>:
: <math>N = a_0\cdot Q^0 + a_1\cdot Q^1 + a_2 \cdot Q^2 + ...\,\!</math>
Q-ичная запись числа <math>N</math> — это набор коэффициентов <math>(a_m,a_{m-1},...,a_0)\,\!</math>,где <math>a_m\,\!</math> &mdash; — последний ненулевой коэффициент.
 
== Вопросы ==
 
1. Докажите методом математической индукции, что это разложение существует и единственно.
Для тренировки разберите отдельно случай <math>Q = 2</math>: любое натуральное число представляется в виде суммы различных степеней двойки и притом единственным образом.
 
 
'''Примеры''':
* <math>1_{10} = 1_2\,\!</math>
* <math>2_{10} = 0\cdot 2^0 + 1 \cdot 2^1 = 10_2\,\!</math>
* <math>3_{10} = 1\cdot 2^0 + 1 \cdot 2^1 = 11_2\,\!</math>
* <math>4_{10} = 0\cdot 2^0 + 0 \cdot 2^1 + 1\cdot 2^2 = 100_2\,\!</math>
* <math>5_{10} = 1\cdot 2^0 + 0 \cdot 2^1 + 1\cdot 2^2 = 101_2\,\!</math>
* <math>15_{10} = 1\cdot 2^0 + 1 \cdot 2^1 + 1\cdot 2^2 + 1\cdot 2^3 = 1111_2\,\!</math>
* <math>16_{10} = 0\cdot 2^0 + 0 \cdot 2^1 + 0\cdot 2^2 + 0\cdot 2^3 + 1\cdot 2^4 = 1000_2\,\!</math>
* <math>255_{10} = 1\cdot 2^0 + 1 \cdot 2^1 + 1\cdot 2^2 + 1\cdot 2^3 + 1\cdot 2^4 + 1\cdot 2^5 + 1\cdot 2^6 + 1\cdot 2^7 = 11111111_2\,\!</math>
 
 
2. Что делает приведеннаяприведённая ниже программа?
<source lang="c">
#include <stdio.h>
void main ()
{
int n;
scanf ("%d", &n);
while(n)
{
printf("%d", n%2);
n /= 2;
}
}
</source>
 
3. Напишите программу, которая введенноевведённое натуральное (число в десятичной записи) переводит в восьмиричнуювосьмеричную систему счисления.