

В данном уроке мы разберемся в том , как переводить числа из десятичной системы счисления в двоичную в паскале.
Системой счисления называется совокупность правил и знаков, с помощью которых можно отобразить (кодировать) любое неотрицательное число. К системам счисления предъявляются определенные требования, среди которых наиболее важными являются требования однозначного кодирования неотрицательных чисел 0, 1, … с некоторой их конечного множества — диапазона Р по конечное число шагов и возможности выполнения по цифр арифметических и логических операций. Различают следующие типы систем счисления: позиционные; смешанные; непозиционные.
В позиционных системах счисления один и тот же цифра в записи числа приобретает разные значения в зависимости от своей позиции. Таким образом, позиция цифры имеет вес в числе. В основном вес каждой позиции кратна некотором натуральном числу b, b >1, которое называется основанием системы счисления.
Например, если b — натуральное число, то для представления числа x в системе счисления с основанием b его представляют в виде линейной комбинации
степеней числа b:
целые,
Основа — это количество символов, используемых при записи чисел. Пример: число «сто пять» представляется в десятичной системе счисления в виде:
Двоичная система счисления — это позиционная система счисления с
основой; использует для записи чисел только два символа: 0 и 1.
Восьмеричная система счисления — это позиционная система счисления с основанием 8. Для представления чисел в ней используются цифры 0 до 7.
С десятичной в двоичную и восьмеричную
С двоичной и восьмеричной в десятичную
Таблица сложения Таблица вычитания
в двоичной системе счисления
Таблица сложения в восьмеричной системе счисления
Сложение и вычитание «в столбик»
Условие задачи :
Требуется перевести число в двоичную систему счисления ( из десятичной ). С клавиатуры вводится натуральное число N , требуется вывести это число в двоичной системе счисления.
Устный разбор :
Мы знаем , что для перевода числа в другую систему счисления его нужно делить на основание системы ( основание двоичной системы счисления — 2 , десятичной — 10 и т.д ). Делить число нужно до тех пор пока неполное частное больше или равно основанию. Когда неполное частное становится меньше основания , начинаем выписывать остатки от деления с конца ( начинать с последнего неполного частного ! ).
Пример :

Проще говоря , число 17 в двоичной системе счисления будет выглядеть так : 10001.
Теперь , когда мы вспомнили то , как переводить числа в другую систему счисления , мы можем перейти к дальнейшему разбору задачи.
В ходе выполнения программы мы будем пользоваться тем же алгоритмом решения , что и на картинке выше.
Решение задачи :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
program mypascal; uses crt; var a: array[1..100] of byte; n,i,c:integer; begin readln(n); c:= ; repeat c:= c + 1; a[c]:= n mod 2; n:= n div 2; until n = ; for i:= c downto 1 do write(a[i]); writeln(); end. |
В начале программы объявляем массив , в котором мы будем хранить остатки от деления. Размерность данного массива зависит от того , какие числа мы будем переводить. Например для перевода небольших чисел хватит 100 ячеек. Если вы рассчитываете на более большие числа , то можете увеличить размерность массива.
Так как значения элементов массива будут колебаться в промежутке от 0 до 1 , то использовать мы будем тип данных byte ( о типах данных )
Нам понадобятся ещё три переменные n , i , c. Как обычно переменная i играет роль счетчика цикла. Переменная n хранит в себе число , которое будем переводить в двоичную систему счисления. Переменная c нужна для добавления остатков от деления в массив.
Далее в программе мы используем цикл repeat ( о циклах ) для сохранения остатков от деления в массив.
В конце программы выводим массив в обратном порядке ( это принципиально ) , так как остатки от деления нужно выводить в обратном порядке.