【发布时间】:2021-07-25 03:26:08
【问题描述】:
我一直在考虑添加二进制数,其中二进制数是字符串形式,我们将这两个二进制数相加得到结果二进制数(在字符串中)。
到目前为止我一直在使用这个:
long first = Convert.ToInt64(a, 2);
long second = Convert.ToInt64(b, 2);
long addresult = first + second;
string result = Convert.ToString(addresult, 2);
return result;
感谢 Stackoverflow:Binary addition of 2 values represented as strings
但是,现在我想添加远远大于long 数据类型范围的数字。
例如,一个二进制值,其十进制结果为BigInteger,即非常大的整数,如下所示:
-
111101101000010111101000101010001010010010010110011010100001000010110110110000110001101等于149014059082024308625334669 -
1111001101011000001011000111100011101011110100101010010001110101011101010100101000001101000010000110001110100010011101011111111110110101100101110001010101011110001010000010111110011011等于23307765732196437339985049250988196614799400063289798555
至少我认为是的。
感谢 Stackoverflow:
我使用了以上链接中提供的或多或少完美的逻辑。
但是,有没有更简洁的方法来添加给定的两个二进制字符串?
请让我知道,因为这个问题已经在我脑海中萦绕了一段时间。
【问题讨论】:
-
有什么特别的原因为什么不能只使用二进制加法逻辑来构建一个新字符串,而不是将其转换为某种整数然后再转换回来?
-
@KieranMoynihan 感谢您的提问,其实是有原因的。一个简单的,真的!我不熟悉或根本不知道。当我说我从未使用过任何远程相关的东西时,请相信我。我在作为测试用例之一的评估中遇到了这样的问题。其他测试用例比这更大。
标签: c# biginteger