Junior
Статус: Не в сети Регистрация: 07.05.2005 Откуда: г. Владимир
Вот на паскале можно забить функцию с строками:
Код:
function IntToBin(A: integer): string; {возвращает строку с бинарным представлением числа А} var i: byte; Temp: string; begin Temp:=''; while(A>0) do begin if (A mod 2)=1 then Temp:='1'+Temp else Temp:='0'+Temp; A:=A div 2 end; IntToBin:=Temp end;
2 числа переводишь сначала функцией в строки с бинарным представлением, затем делаешь следующее:
Код:
function Mod2bezPerenosa(A,B: String): string;
procedure AligningStrings(var C: string; var D: string); {уравниваем длину строк} var i: byte; Max: byte; begin Max:=Length(C)-Length(D); if Max>=0 then for i:=1 to Max do D:='0'+D else for i:=1 to ABS(Max) do C:='0'+C end;
var i: byte; Res: string; begin Res:=''; AligningStrings(A,B); for i:=1 to length(A) do if A[i]=B[i] then Res[i]:=0 else Res[i]:=1; Mod2bezPerenosa:=Res end;
Конечно, геморрой большой, но если на паскале - то так
P.S. Могут быть ошибки, т.к. писал сразу в форум. Работает только с неотрицательными числами. Поддержка отрицательных усложнит функции: IntToBin и AlignStrings.
Member
Статус: Не в сети Регистрация: 17.10.2003 Откуда: Киев
может я чего не понял, но зачем такие извраты с сложением по модулю 2 ?
var a,b,c:integer;
begin
readln(a,b);
c:=a xor b;
writeln(c);
readln;
end;
Добавлено спустя 4 минуты, 24 секунды: сейчас паскаля под рукой нет, но если там нет операции xor (в чем очень сомненваюсь), тогда так : c:=((not a) and (b)) or ((not b) and (a))
Последний раз редактировалось LS 01.06.2005 11:10, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 15.02.2004 Откуда: Уфа-сити
LS Если твоим методом сложить, например 100011 и 101010, то он выдает 3129.
Syrf@ Твоим метедом еще не пробовал.
Всем спасибо за помощь, но вы так не заморачивайтесь. Я просто хотел облегчить немного расчет в дипломе с помощью паскаля. Не получится, так вручную посчитаю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения