给定两个用字符串表示的二进制数,返回他们的和
时间: 2023-05-01 10:06:35 浏览: 86
二进制字符串是 b'\xe7\xbb\x99\xe5\xae\x9a\xe4\xb8\xa4\xe4\xb8\xaa\xe7\x94\xa8\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xe8\xa1\xa8\xe7\xa4\xba\xe7\x9a\x84\xe4\xba\x8c\xe8\xbf\x9b\xe5\x88\xb6\xe6\x95\xb0\xef\xbc\x8c\xe8\xbf\x94\xe5\x9b\x9e\xe4\xbb\x96\xe4\xbb\xac\xe7\x9a\x84\xe5\x92\x8c'。
将其转换为可读性更强的字符串后为“给定两个用字符串表示的二进制数,返回它们的和”。
相关问题
编写STL程序,给定两个二进制字符串A和B,编写函数返回字符串A在字符串B中所出现的次数
以下是使用STL的C++代码实现:
```c++
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string A = "10101";
std::string B = "11010101101";
int count = 0;
std::string::size_type pos = 0;
while ((pos = B.find(A, pos)) != std::string::npos) {
count++;
pos += A.length();
}
std::cout << "A occurs in B " << count << " times" << std::endl;
return 0;
}
```
我们可以使用`std::string`的`find()`函数来查找字符串A在B中出现的位置。由于`find()`函数返回的是字符串的位置,我们可以利用这个位置来查找下一个出现的位置,直到`find()`函数返回`std::string::npos`表示字符串A在B中不存在。
在循环中,我们使用变量`pos`来记录当前查找的位置。每次找到字符串A后,我们将计数器加1,然后将`pos`移动到下一个查找的位置。
最后,我们输出计数器的值,即字符串A在B中出现的次数。
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。 输入为 非空 字符串且只包含数字 1 和 0。用go语言实现
好的,我可以帮你计算给定的两个 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 语言中的加号 + 实现。
希望这个代码可以帮到你,如果有什么问题或者其他需要,请随时告诉我。