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');