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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Поставил теги <source>
м оформление
Строка 1: Строка 1:
{{Содержание «Язык Си в примерах»}}
{{Содержание «Язык Си в примерах»}}


Число 235 в десятичной системе счисления есть
Число 235 в десятичной системе счисления есть
<math>235_{10} = 2\cdot 10^2 + 3 \cdot 10 + 5 \,\!</math>
: <math>235_{10} = 2\cdot 10^2 + 3 \cdot 10 + 5 \,\!</math>
Число 235 в восьмеричной системе счисления есть
Число 235 в восьмеричной системе счисления есть
<math>235_{8}= 2\cdot 8^2 + 3 \cdot 8 + 5 \,\!</math>
: <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> — последний ненулевой коэффициент.


== Вопросы ==
== Вопросы ==


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



'''Примеры''':
'''Примеры''':
* <math>1_{10} = 1_2\,\!</math>
* <math>1_{10} = 1_2\,\!</math>
* <math>2_{10} = 0\cdot 2^0 + 1 \cdot 2^1 = 10_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>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>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>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>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>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>
* <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. Что делает приведенная ниже программа?
2. Что делает приведённая ниже программа?
<source lang="c">
<source lang="c">
#include <stdio.h>
#include <stdio.h>
void main ()
void main ()
{
{
int n;
int n;
scanf ("%d", &n);
scanf ("%d", &n);
while(n)
while(n)
{
{
printf("%d", n%2);
printf("%d", n%2);
n /= 2;
n /= 2;
}
}
}
}
</source>
</source>


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

Версия от 02:04, 27 июня 2008

Язык Си в примерах


  1. Компиляция программ
  2. Простейшая программа «Hello World»
  3. Учимся складывать
  4. Максимум
  5. Таблица умножения
  6. ASCII-коды символов
  7. Верхний регистр
  8. Скобочки
  9. Факториал
  10. Степень числа
  11. Треугольник Паскаля
  12. Корень уравнения
  13. Система счисления
  14. Сортировка
  15. Библиотека complex
  16. Сортировка на основе qsort
  17. RPN-калькулятор
  18. RPN-калькулятор на Bison
  19. Простая грамматика
  20. Задача «Расчёт сопротивления схемы»
  21. Простая реализация конечного автомата
  22. Использование аргументов командной строки
  23. Чтение и печать без использования stdio
  24. Декодирование звукозаписи в формате ADX
  25. Другие примеры

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

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

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

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

Вопросы

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

Примеры:

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

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

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