На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
19 Янв 14

Перевод в двоичную систему паскаль


Комментарии :  0        Просмотры :  16915


В данном уроке мы разберемся в том , как переводить числа из десятичной системы счисления в двоичную в паскале.

Условие задачи :

Требуется перевести число в двоичную систему счисления ( из десятичной ). С клавиатуры вводится натуральное число N , требуется вывести это число в двоичной системе счисления.

Устный разбор :

Мы знаем , что для перевода числа в другую систему счисления его нужно делить на основание системы ( основание двоичной системы счисления - 2 , десятичной - 10 и т.д ). Делить число нужно до тех пор пока неполное частное больше или равно основанию. Когда неполное частное становится меньше основания , начинаем выписывать остатки от деления с конца ( начинать с последнего неполного частного ! ).

Пример :
как осуществляется перевод

Проще говоря , число 17 в двоичной системе счисления будет выглядеть так : 10001.

Теперь , когда мы вспомнили то , как переводить числа в другую систему счисления , мы можем перейти к дальнейшему разбору задачи.

В ходе выполнения программы мы будем пользоваться тем же алгоритмом решения , что и на картинке выше.

Решение задачи :

Код
program mypascal;
uses crt;
var
a: array[1..100] of byte;
n,i,c:integer;
begin

  readln(n);
  c:= 0;
   
  repeat
   
  c:= c + 1;
  a[c]:= n mod 2;
  n:= n div 2;
   
  until n = 0;
   
  for i:= c downto 1 do
  write(a[i]);
   
  writeln();

end.


В начале программы объявляем массив , в котором мы будем хранить остатки от деления. Размерность данного массива зависит от того , какие числа мы будем переводить. Например для перевода небольших чисел хватит 100 ячеек. Если вы рассчитываете на более большие числа , то можете увеличить размерность массива.

Так как значения элементов массива будут колебаться в промежутке от 0 до 1 , то использовать мы будем тип данных byte ( о типах данных )

Нам понадобятся ещё три переменные n , i , c. Как обычно переменная i играет роль счетчика цикла. Переменная n хранит в себе число , которое будем переводить в двоичную систему счисления. Переменная c нужна для добавления остатков от деления в массив.

Далее в программе мы используем цикл repeat ( о циклах ) для сохранения остатков от деления в массив.

В конце программы выводим массив в обратном порядке ( это принципиально ) , так как остатки от деления нужно выводить в обратном порядке.
Рейтинг материала : ( 4 / 5 )
Сообщить об ошибке
Комментарии :  0        Просмотры :  16915

Личный кабинет

Логин:
Пароль:

Поиск

RSS лента

Подписаться на rss


Подпишитесь на нашу ленту новостей rss и вы всегда сможете быть в курсе обновлений на нашем сайте.

Решение задач

Если вас интересует решение какой-либо задачи , то вы можете опубликовать
её условие на нашем сайте или форуме. И в скором времени другие пользователи помогут вам.

Опубликовать на сайте

Опубликовать на форуме

Опрос

Какой ваш любимый раздел ?