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

fon1Реализуем алгоритм перевода числа из двоичной системы счисления в десятичную на языке Паскаль. Программа будет работать для двоичных чисел, состоящих из 10 цифр, т.к. мы используем тип данных LONGINT. Как реализовать данный алгоритм для любого двоичного числа —  рассмотрим в следующих записях.

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

Всегда рад комментариям, пишите!

Можно приступать!

Как бы мы решали данную задачу на бумаге:

iz2v10(1)

Мы умножаем каждую цифру числа на 2 в степени, соответствующей разряду этой цифры в числе, и складываем полученные произведения.

Для возведения числа ДВА в соответствующую степень, мы используем функцию (я назову ее STEP, выделена зеленым цветом).

Рассмотрим код программы:

function step(x:integer):longint;
 var i:integer; st:longint;
 begin
 if x=0 then step:=1 else begin
      st:=1;
      for i:=1 to x do begin
      st:=st*2;
      step:=st;
      end; end;
 end;
var k,a,b,d,s:longint;


begin
s:=0;
k:=0;
readln(a);
repeat
      b:=a mod 10; // отделяем последнюю цифру числа
      d:=a div 10; // запоминаем число без последней цифры
      s:=s+b*step(k); 
      k:=k+1;
      a:=d;
until d=0;
writeln(s);
end.

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

Функция STEP возвращает значение: число ДВА в некоторой степени k.

Процесс работы программы смотрите в презентации «Перевод из двоичной системы счисления в десятичную. Паскаль» (скачать)

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (11 голос, значение: 3,91 из 5)
Загрузка...
Вы можете оставить комментарий, или ссылку на Ваш сайт.

4 комментария к записи “Перевод из двоичной системы счисления в десятичную. Паскаль”

  1. Максим:

    Проверял — работает => использовал в своей программе)

  2. оскар:

    spasibo Andrey vam bolshoe dolgo iskal etu programmu)))))

  3. Анна Георгиевна:

    А почему не по схеме Горнера? Намного проще и эффективнее.

  4. Antoniij:

    Схема классная, очень хорошо помогла. Спасибо!

Оставить комментарий

Антибот *