The answer should be {1, 1, 1, 1, 0, 0, 0, 0 } ;
num3 = {1, 1, 1, 1, 0, 0, 0};
num4 = {1, 1, 1, 1, 0, 0, 0};
IntegerDigits[FromDigits[num3, 2] + FromDigits[num4, 2], 2]
In your code use Floor instead of Round. And AppendTo puts the first result into Position 1 of your result and so on: use Reverse
num3 = {1, 1, 1, 1, 0, 0, 0};
num4 = {1, 1, 1, 1, 0, 0, 0};
add = {};
acc = 0;
For[i = Length[num3], i > 0, i--,
AppendTo[add, Mod[num3[[i]] + num4[[i]] + acc, 2]];
acc = Floor[(num3[[i]] + num4[[i]] + acc)/2];
]
Reverse@AppendTo[add, acc]
By the way: you should avoid AppendTo and use other methods.