大型二进制文件添加
Large binaries add
这是我的第一个问题,所以我希望我不会违反论坛上的任何给定规则。我想向你寻求帮助。我真的是编程菜鸟,但对于家庭作业,我必须用C++制作一个程序,它将添加 2 个二进制数。我能够通过转换为小数并添加它们来实现它。我做到了,我的电脑里已经有一些零件了。我的问题是,除非我输入非常大的二进制数,否则一切都很好。当我们的学校程序检查代码时,更改数据类型会使结果有所不同。我不确定到底要改变什么。提前谢谢你。当必须转换带有"e"的十进制数时,看起来会出现概率-
#include <iostream>
#include <cmath>
#include <string>
#include <vector>
using namespace std;
int main ()
{
int k = 0;
int l = 0;
int i = 0;
int j = 0;
double number = 0;
double numberb = 0;
long dec;
string input;
string inputb;
cout << "Enter two binary numbers:" << endl;
cin >> input >> inputb;
if(cin.fail ())
{cout << "Wrong input." << endl;
return 0;
}
for (i = input.length() - 1; i>=0; i-- )
{
if (input[i] != '1' && input[i] != '0')
{
cout << "Wrong input." << endl;
return 0;
}
if (input[i] == '1')
{
number += pow((double)2,(int)j);
}
j++;
}
for (k = inputb.length() - 1; k>=0; k-- )
{
if (inputb[k] != '1' && inputb[k] != '0')
{
cout << "Wrong input." << endl;
return 0;
}
if (inputb[k] == '1')
{
numberb += pow((double)2,(int)l);
}
l++;
}
dec = number+numberb;
vector <double> bin_vector;
long bin_num;
while ( dec >= 1 )
{
bin_num = dec % 2;
dec /= 2;
bin_vector.push_back(bin_num);
}
cout << "Soucet: ";
for ( int i = (double) bin_vector.size() - 1; i >= 0; i-- )
cout << bin_vector[i] << "";
cout << endl;
return 0;
}
可能你的老师告诉你,double
数字对于大数字来说很好。它们是,但它们有一个很大的缺点:它们不能准确地表示大数字,因为它们(粗略地说)只存储数字的前几位数字以及小数点的位置,就像您的袖珍计算器显示的那样(例如,123456E13
)。
因此,您根本不应该在这里使用double
数字,因为无论您的数字有多大,您都需要精确的结果。更好的主意是同时处理两个字符串,并将结果逐个数字存储在另一个字符串中,称为 result
。
顺便说一句:由于double
数字通常可以精确存储 53 个二进制数字,因此您最好用更多数字测试程序。
相关文章:
- 正在读取二进制文件(is_open)
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- Android 在编译二进制文件时重建静态库
- 在 C++ 中将双精度变量写入二进制文件
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- 如何添加 GetCurrentDirectory 文件?C++[解决]
- 将二进制文件添加到其他人的柯南食谱中
- 大型二进制文件添加
- 读取由 fopen( "ab" ) 打开的二进制文件 (添加,二进制)
- 将操作码添加到现有二进制文件所需的内容
- 创建一个二进制文件,向其中添加信息,并从中读取所有记录(电话簿)
- 在Visual Studio中向资源中添加二进制文件
- 安装GCC-4.9没有根添加路径和二进制文件和额外的
- 添加一个二进制文件供Xcode使用
- 使用CMake从二进制文件编译并添加对象文件
- 将依赖项添加到库中,并将它们添加到依赖于该库的二进制文件中
- 在二进制文件中添加特定的记录