Курсовая работа: Системы счисления и коды
for m:=k downto 1 do
begin
{Складываем соотвествующие разряды + "что на ум пошло"}
temp:=StrToVal(BIN1[m])+StrToVal(BIN2[m])+pl_razryad;
{обнуляем то что на "ум пошло"}
pl_razryad:=0;
If temp>7 then
begin
inc(pl_razryad);
temp:=temp-2;
end;
{избавляемся от переполнения разрядной сетки}
if length(summ)<=8 then insert(ValToStr(temp),summ,1);
end;
{еслои после сложения двух числел что-то осталось "в уме"
добавляем еще один разряд}
if pl_razryad<>0 then insert(valtostr(pl_razryad),summ,1);
BINPlus:=summ;
end;
{двоичноевычитание}
function BinMinus(BIN1,BIN2:string):String;
var inverseBIN2:string[8];
begin
{т.к. вычитание есть сложение первой величины и
второй величины взятой с инверсией, то можно
делать так}
{инверсия величины BIN2}
inverseBIN2:=DecToBase(-BaseToInt(BIN2,2),2);
{сложение BIN1 и инверсной Bin2}