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

Вопрос школьника по предмету Информатика

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

Ответ учителя по предмету Информатика

Const

  Rn : String[36] = ‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ’;

Function DecToN(a : Longint; Raz : Byte) : String;

Begin

  If a>Raz-1 then DecToN:=DecToN(a div Raz,Raz)+Rn[(a mod Raz)+1]

  else DecToN:=Rn[a+1];

end;

Function NToDec(a : String; Raz : Byte) : Longint;

Begin

  If Length(a)>0 then NToDec:=Pos(a[Length(a)],Rn)-1+Raz*NToDec(Copy(a,1,Length(a)-1),Raz)

  else NToDec:=0;

end;

Var a,b : String;

Begin

  a:=’1011′; b:=’110′;

  Writeln(‘a = ‘,a,’ (bin) = ‘,NToDec(a,2),’ (dec)’);

  Writeln(‘b = ‘,b,’ (bin) = ‘,NToDec(b,2),’ (dec)’);

  Writeln(a+’+’+b+’ = ‘,DecToN(NToDec(a,2)+NToDec(b,2),2),’ (bin)  ‘,NToDec(a,2)+NToDec(b,2),’ (dec)’);

  Writeln(a+’-‘+b+’ = ‘,DecToN(NToDec(a,2)-NToDec(b,2),2),’ (bin)  ‘,NToDec(a,2)-NToDec(b,2),’ (dec)’);

  Writeln(a+’*’+b+’ = ‘,DecToN(NToDec(a,2)*NToDec(b,2),2),’ (bin)  ‘,NToDec(a,2)*NToDec(b,2),’ (dec)’);

end.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей