Перейти к содержанию

Сложение двоичных чисел (помогите в коде программы)


Рекомендуемые сообщения

Программа написана на delphi, она складывает два двоичных числа, но почему то в ответе выводятся либо одни нули, либо единицы, помогите разобраться.... пожалуйста, что не так?!

procedure TForm1.BitBtn5Click(Sender: TObject);

var memory, i, j, k: integer;

s1, s2, s3: string;

begin

s1:=edit1.Text;

s2:=edit2.Text;

s3:=edit3.Text;

memory:=0;

for i:=length(s3)downto 0 do

for j:=length(s2) downto 0 do

for k:=length(s1) downto 0 do

begin

if (memory=1)then

if(s1[k]='1') and (s2[j]='1') then

begin

s3:='1';

memory:=1;

end;

if(s1[k]='1') and (s2[j]='0') then

begin

s3:='1';

memory:=0;

end;

if(s1[k]='0') and (s2[j]='1') then

begin

s3:='1';

memory:=0;

end;

if(s1[k]='0') and (s2[j]='0') then

begin

s3:='1';

memory:=0;

end

else

begin

if(s1[k]='1') and (s2[j]='1') then

begin

s3:='0';

memory:=1;

end;

if(s1[k]='1') and (s2[j]='0') then

begin

s3:='1';

memory:=0;

end;

if(s1[k]='0') and (s2[j]='1') then

begin

s3:='1';

memory:=0;

end;

if(s1[k]='0') and (s2[j]='0') then

begin

s3:='0';

memory:=0;

end;

end;

end;

edit3.Text:=s3;

end;

Ссылка на комментарий

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

Ошибка там где слаживиаются 0+0(два нуля) и цикл по-моему должен быть один

Ссылка на комментарий

Нет, с умножения не переписывал, ну да в принципе можно также умножение организовать, только почему у меня в edite 3 теперь больше 5 знаков не выводятся?

Ссылка на комментарий

хз почему 5 знаков.

Возможно на форме стоит в параметре поля размер 5 знаков.

s3:=edit3.Text; - это в начале убрать, сюда записывается только результат. Может быть уберется проблема с 5 знаками

Цикл при сложении должен быть один. Сложение происходит по разрядам с последних цифр до первой.

И еще посмотрите спойлер в моем первом сообщении

Ссылка на комментарий
  • 2 недели спустя...

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...