Not a bad beginning, but:
You are using cin to read characters into arrays. I assume you are entering eight '0' or '1's for each number. The function cin reads them as strings (it takes 9 locations to hold an eight-character string).
Change declarations for bin_one and bin_two to [SIZE+1].
(This isn't a really great way to get the thingies in, but it will work if you are careful, and will let you get to the good stuff.)
Also, I think the loops in main() that convert chars to ints should
be something like
Code:
if (bin_one[count] == '0')
binnum_one[count] = 0;
else
binnum_one[count] = 1;
etc., since you use these variables in your call to the actual
arithmetic routine.
Your arithmetic routine works for some numbers, but not for others,
since you don't add the final carry back into the result.
try adding the following: -16 and -1
(one's complement 11101111 and 11111110)
the answer should be -17
(one's complement 11101110)
What do you get?
Good Luck!
Dave