
Паскаль.Число в двоичной системе счисления, введенное пользователем программы, преобразовать в
14-ричная. Результат вывести на экран

Ответы на вопрос

Ответ:
//-----------------------------------------------------------------
function decToX(x:integer;k:integer):string;
// конвертирует x из десятичной системы счисления в систему счисления по основанию k (до 16-ричной, но можно расширить до какой угодно).
var s:string='';
t:string='';
i:integer;
begin
while x>0 do begin
i := x mod k;
if i = 10 then t:='A'
else if i = 11 then t:='B'
else if i = 12 then t:='C'
else if i = 13 then t:='D'
else if i = 14 then t:='E'
else if i = 15 then t:='F'
else str(i, t);
s:=t+s;
x:=x div k;
end;
decToX := s;
end;
//-----------------------------------------------------------------
function xToDec(x:string; k:integer):integer;
// конвертирует x из системы счисления по основанию k (до 16-ричной) в десятичную
var s:string='';
i,j,l:integer;
begin
i:=length(x);
l:=0;
while i>0 do begin
case x[i] of
'0','1','2','3','4','5','6','7','8','9': val(x[i],j);
'A': j:=10;
'B': j:=11;
'C': j:=12;
'D': j:=13;
'E': j:=14;
'F': j:=15;
end;
l:=l+round(j*exp((length(x)-i)*ln(k)));
i:=i-1;
end;
xToDec := l;
end;
//-----------------------------------------------------------------
var sbin:string;
// тело программы
// здесь мы вводим строку с двоичным кодом, далее конвертируем его в десятичную систему счисления, а после переводим в 14-ричную
begin
write('Введите двоичное число: '); readln(sbin);
writeln(decToX(xToDec(sbin,2),14));
end.
Объяснение:
Я написал универсальные функции перевода из любой системы счисления в десятичную и наоборот. Они расширяемые, так что можно не ограничиваться 16-ричной системой счисления.
Может быть написано чуть больше, чем необходимо, зато универсально :)



Для преобразования числа из двоичной системы счисления в 14-ричную в языке программирования Pascal, вы можете использовать следующий код:
pascalprogram BinaryToQuaternary; var binaryNumber, quaternaryNumber: string; decimalNumber, quotient, remainder, base14Digit: integer; begin // Введите число в двоичной системе счисления Write('Введите число в двоичной системе счисления: '); Readln(binaryNumber); // Инициализируем переменные decimalNumber := 0; quaternaryNumber := ''; // Преобразуем число из двоичной в десятичную систему счисления for base14Digit := Length(binaryNumber) downto 1 do begin if binaryNumber[base14Digit] = '1' then decimalNumber := decimalNumber + 2**(Length(binaryNumber) - base14Digit); end; // Преобразуем число из десятичной в 14-ричную систему счисления while decimalNumber > 0 do begin quotient := decimalNumber div 14; remainder := decimalNumber mod 14; // Для удобства представления, используем символы A, B, C, ..., N вместо 10, 11, 12, ..., 13 if remainder < 10 then quaternaryNumber := Chr(Ord('0') + remainder) + quaternaryNumber else quaternaryNumber := Chr(Ord('A') + remainder - 10) + quaternaryNumber; decimalNumber := quotient; end; // Выводим результат WriteLn('Число в 14-ричной системе счисления: ', quaternaryNumber); end.
Этот код сначала преобразует число из двоичной системы в десятичную, а затем из десятичной в 14-ричную систему счисления. Результат будет выведен на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili