给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。 输入为 非空 字符串且只包含数字 1 和 0。用go语言实现
时间: 2024-05-06 07:19:17 浏览: 75
好的,我可以帮你计算给定的两个 01 字符串的和并以二进制字符串的形式输出。以下是用 Go 语言实现的代码:
```
package main
import "fmt"
func addBinary(a string, b string) string {
carry := 0
sum := ""
i := len(a) - 1
j := len(b) - 1
for i >= 0 || j >= 0 || carry == 1 {
if i >= 0 {
carry += int(a[i] - '0')
i--
}
if j >= 0 {
carry += int(b[j] - '0')
j--
}
sum = string(carry%2+'0') + sum
carry /= 2
}
return sum
}
func main() {
a := "1010"
b := "1011"
result := addBinary(a, b)
fmt.Println(result) // Output: 10101
}
```
这个程序使用了类似于手算加法的思路,依次从右往左将字符串 a 和 b 中的每一位相加并加上进位,最终得到两个字符串的和。注意,这里使用了字符串拼接操作,可以用 Go 语言中的加号 + 实现。
希望这个代码可以帮到你,如果有什么问题或者其他需要,请随时告诉我。
阅读全文