[PASCAL] Сложить два массива побитово.

smoke96

Участник
Сообщения
1,134
Реакции
175
В общем нужно побитово сложить 2 массива , но у меня не получается сложить именно побитово. Как-то не понятно происходит сложение.
Код программы.
PHP:
var a,b: array[byte] of byte;
var i: integer;
begin
for i:=1 to 8 do
begin
write('a[',i,']= ');
readln(a[i]);
end;
for i:=1 to 8 do
begin
write('b[',i,']= ');
readln(b[i]);
end;
for i:=1 to 8 do
write(a[i]);
writeln;
for i:=1 to 8 do
write(b[i]);
writeln;
for i:=1 to 8 do
write(a[i] and b[i]);
end.
То что получается в результате расчёта:
PHP:
a[1]= 1
a[2]= 1
a[3]= 0
a[4]= 0
a[5]= 1
a[6]= 0
a[7]= 1
a[8]= 0
b[1]= 1
b[2]= 0
b[3]= 0
b[4]= 1
b[5]= 1
b[6]= 0
b[7]= 0
b[8]= 1
11001010
10011001
10001000
А сайт онлайн калькулятор выдаёт совсем другое.
Снимок.PNG
Помогите пожалуйста :(
--- Добавлено позже ---
Ребят помогите. Срочно нужно :(
 
Последнее редактирование модератором:

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
у тебя получается логическое ИЛИ для каждого из битов, а в онлайн-калькуляторе (кстати и в стандартном винды, по крайней мере в 7-ке такой режим имеется) просто сложение двоичных чисел.

Есть ещё сложение по модулю 2, а тебе какой из перечисленных вариантов нужно?

Если просто сложение, то тебе нужно начинать складывать с младших разрядов и при сложении 2 единиц переносить единицу в старший разряд.
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #3
@Grey83, ему побитовое или нужно
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@R1KO, если так, то просто нужно изменить предпоследнюю строку на
PHP:
write(a[i] or b[i]);
Но результат всё равно не будет совпадать с тем, что выдаёт калькулятор, т.к. там совсем другая операция производится.:biggrin:
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #5
@Grey83, я ему это и написал. стоп. я кажись and написал.
 
Сверху Снизу