我正在研究一个程序,以便从命令行输入(argv,argc)中将两个二进制数加在一起。也有理由。
例如:$ a.out 0 1返回1,$ a.out 10 1返回11等。
我正在使用函数进行加法运算,我知道我的问题100%属于我的函数,但是我无法弄清楚自己在做什么错。当我添加两个二进制数字时,它们的最前面都带有一个“ 0”,它不会在总和中显示“ 1”。我还有另一个问题,有些款项是反向打印的,而有些不是。如果有人能指出我在做错事情的正确方向,我将不胜感激。
错误总和的示例:
system_profiler
我的功能:
$a.out 10 10
00 // should be "100"
$a.out 11 11
01 // should be "110"
$a.out 100 100
000 // should be "1000"
$a.out 110000 1
100011 // should be "110001"
答案 0 :(得分:1)
两个原因:第一个原因是您要以相反的顺序存储结果,第二个原因是您没有考虑最后一个进位。如果最后一次求和,则必须在结果后附加另一个'1'
。