提问者:小点点

将存储在数组中的两个二进制数相加


好吧,苏。。这是我大学的一个作业中的问题。我以前学过C++,但他们甚至没有教过函数,对象,类或字符串。这是我遇到的两个问题之一,尽管我已经成功地将两个用户输入转换为二进制。现在,我被卡住了,无法将存储在数组中的两个二进制数相加。我可能会写一个愚蠢冗长的程序,但那将是荒谬的

问题来了;

假设integer占用1字节的内存空间。编写一个C++程序,从用户那里获取2个整数输入(值必须在1-100之间,第一个整数必须是您的数字的最后2位)。将两个输入数转换为二进制格式,并将每一位存储在数组中。将两个二进制数相加并存储在单独的内存中。最后,将二进制和转换为十进制格式并显示在屏幕上,如以下输出所示。可以使用Math.h头文件的pow()函数来计算功率。在代码后面添加程序输出的屏幕截图。

映像1是所需的接口

我在程序中使用的变量名如下:num1是第一个用户输入,num2是第二个,而bin1num1的等效二进制,bin2是num2的等效二进制。到目前为止,我已经成功地转换,存储和打印了两个输入整数的二进制威尔斯值,但是我很难理解如何添加这两个数组,保持它们为二进制,以及将其转换回十进制。

int num1=0, num2=0, decsum=0, carry=0; 
int bin1[7], bin2[7], binsum[7];

共1个答案

匿名用户

您可以创建一个REST[7]bin并用0初始化它。

在每个迭代中,您将添加已有的三个箱(REST[i]+bin1[i]+bin2[i])。

当结果溢出(is>1)时,将溢出部分放入下一个RESTbin中。

   0000000 <- rest[7]  (initial state)
   0001011 <- bin1[7]
+  0000111 <- bin2[7]
-----------
   0001110 <- rest[7]  (final state)
   0001011 <- bin1[7]
+  0000111 <- bin2[7]
-----------
   0010010 <- binsum[7]