C# 表示为字符串的2个值的二进制加法

C# 表示为字符串的2个值的二进制加法,c#,binary,addition,C#,Binary,Addition,我有两条线: string a = "00001"; /* which is decimal 1 I've converted with next string: string a = Convert.ToString(2, 2).PadLeft(5, '0'); */ string b = "00010"; 我想在二者之间执行二进制加法,因此答案将是00011(3)。你可以像在纸上那样做。从右边开始,然后向左移动。如果A[i]+B[i]+进位>=2,进位保持为1,然后继续。否则,写入A[i]

我有两条线:

string a = "00001"; /* which is decimal 1 I've converted with next string:
string a = Convert.ToString(2, 2).PadLeft(5, '0'); */
string b = "00010";

我想在二者之间执行二进制加法,因此答案将是00011(3)。

你可以像在纸上那样做。从右边开始,然后向左移动。如果A[i]+B[i]+进位>=2,进位保持为1,然后继续。否则,写入A[i]+B[i]+进位并将进位设置为0

a=“00001”; b=“00010”

进位=0; a[4]+b[4]+进位=1,写入1,设置进位=0:00001

a[3]+b[3]+进位=1,写入1,设置进位=0:00011


诸如此类。

非常简单——为“添加”二进制字符编写一个查找表,如果需要,请不要忘记随身携带,并将您获得的工作积分的50%发送给我。

我建议将数据解析为int,然后添加它们,然后将结果输出为二进制。

System.Convert应该能够为您完成这项工作

int number_one = Convert.ToInt32(a, 2);
int number_two = Convert.ToInt32(b, 2);

return Convert.ToString(number_one + number_two, 2);
(您可能需要稍微调整字符串)

私有静态bool[]二进制添加(bool[]originalbits,long valuetoadd)
{
bool[]returnbits=新bool[originalbits.Length];
对于(长i=0;i
“00011”

实际上并不需要PadLeft,但如果字符串长度不同,则会得到相同格式的字符串。示例:

var sum = Convert.ToString(Convert.ToInt32("0000010", 2) + Convert.ToInt32("001", 2), 2).PadLeft(5, '0');
“00011”


这可能是家庭作业,但仍然很有趣——它激起了我的好奇心,以至于我现在打开了一个控制台应用程序,正在摆弄它!;)不是真正的家庭作业>var sum = Convert.ToString(Convert.ToInt32("00010", 2) + Convert.ToInt32("00001", 2), 2).PadLeft(5, '0');
var sum = Convert.ToString(Convert.ToInt32("0000010", 2) + Convert.ToInt32("001", 2), 2).PadLeft(5, '0');