好吧,苏。。这是我大学的一个作业中的问题。我以前学过C++,但他们甚至没有教过函数,对象,类或字符串。这是我遇到的两个问题之一,尽管我已经成功地将两个用户输入转换为二进制。现在,我被卡住了,无法将存储在数组中的两个二进制数相加。我可能会写一个愚蠢冗长的程序,但那将是荒谬的
问题来了;
假设integer占用1字节的内存空间。编写一个C++程序,从用户那里获取2个整数输入(值必须在1-100之间,第一个整数必须是您的数字的最后2位)。将两个输入数转换为二进制格式,并将每一位存储在数组中。将两个二进制数相加并存储在单独的内存中。最后,将二进制和转换为十进制格式并显示在屏幕上,如以下输出所示。可以使用Math.h头文件的pow()函数来计算功率。在代码后面添加程序输出的屏幕截图。
映像1是所需的接口
我在程序中使用的变量名如下:num1
是第一个用户输入,num2
是第二个,而bin1
是num1
的等效二进制,bin2
是num2的等效二进制。到目前为止,我已经成功地转换,存储和打印了两个输入整数的二进制威尔斯值,但是我很难理解如何添加这两个数组,保持它们为二进制,以及将其转换回十进制。
int num1=0, num2=0, decsum=0, carry=0;
int bin1[7], bin2[7], binsum[7];
您可以创建一个REST[7]
bin并用0
初始化它。
在每个迭代中,您将添加已有的三个箱(REST[i]
+bin1[i]
+bin2[i]
)。
当结果溢出(is>1)时,将溢出部分放入下一个REST
bin中。
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]