CSharp 二进制数字相加用字符串返回 源代码
时间: 2024-05-12 10:18:45 浏览: 21
以下是一个 C# 实现二进制数字相加的方法,它将两个二进制数字作为字符串输入,并返回它们的和作为字符串输出。
```
public static string AddBinary(string a, string b) {
StringBuilder sb = new StringBuilder();
int i = a.Length - 1, j = b.Length - 1;
int carry = 0;
while (i >= 0 || j >= 0 || carry > 0) {
int sum = carry;
if (i >= 0) {
sum += a[i] - '0';
i--;
}
if (j >= 0) {
sum += b[j] - '0';
j--;
}
sb.Insert(0, sum % 2);
carry = sum / 2;
}
return sb.ToString();
}
```
该方法使用 StringBuilder 类来构建结果字符串,并使用一个 while 循环来迭代输入字符串的每个字符,并将它们相加。carry 变量用于跟踪进位,而 sum 变量保存两个二进制数字和进位的总和。在每次循环中,我们将 sum 的个位数添加到结果字符串的开头,并将十位数作为 carry 变量传递到下一次迭代中。最后,我们将 StringBuilder 对象转换为字符串并返回结果。
以下是一个示例用法:
```
string a = "1010";
string b = "1011";
string sum = AddBinary(a, b);
Console.WriteLine($"The sum of {a} and {b} is {sum}.");
// Output: The sum of 1010 and 1011 is 10101.
```
在上面的示例中,我们将两个二进制数字 "1010" 和 "1011" 传递给 AddBinary 方法,并将结果存储在字符串变量 sum 中。然后,我们使用 Console.WriteLine 方法将结果输出到控制台。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)