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

Задача

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

Решение

 

Описание переменных: 

decimal – десятичное число;
bin_oct – основание системы счисления, в которую следует его перевести.

Алгоритм решения задачи: 

Пока десятичное число больше 0

  1. Добавлять на первое место двоичного числа остаток от деления этого числа на основание системы счисления.
  2. Сохранить результат целочисленного деления десятичного числа на основание системы счисления.

Программа на языке Паскаль: 

 

var
    decimal: word;
    bin_oct: byte;
 
function binary_octal(decimal:word;bin_oct:byte):string;
begin
    if (bin_oct <> 2) and (bin_oct <> 8) then
        write('Error')
    else
        while decimal > 0 do begin
            binary_octal := chr(ord('0') + (decimal mod bin_oct)) + binary_octal;
            decimal := decimal div bin_oct
        end;
end;
 
begin
    write('Decimal: ');
    readln(decimal);
    write('Binary or octal (2,8): ');
    readln(bin_oct);
 
    writeln(binary_octal(decimal,bin_oct));
 
readln
end.

 

Тема

Процедуры, функции, рекурсии

Уровень

Комбинированные задачи

Добавить комментарий