这是两个二进制字符串相加得到二进制字符串的代码
今天学到了:
1,如果两个字符串长度不一致,用三元判断赋值
tmp_a = a[-i-1] if i < len(a) else '0'
2,列表翻转
c = list(reversed(c))
3,直接在字符串前面加入字符
result = "%s%s" % (val % 2, result)或者是
result = str(val%2) + result
代码如下:
a = "1010" b = "1011" c = '' flag = 0 # for i in range(max(len(a),len(b))): # tmp_a = a[-i-1] if i < len(a) else '0' # tmp_b = b[-i-1] if i < len(b) else '0' # x = int(tmp_a) + int(tmp_b) + flag # flag = x // 2 # x = x % 2 # c.append(str(x)) # if flag: # c.append('1') # c = list(reversed(c)) # c = ''.join(c) # print(c) for i in range(max(len(a),len(b))): tmp_a = a[-i-1] if i < len(a) else '0' tmp_b = b[-i-1] if i < len(b) else '0' x = int(tmp_a) + int(tmp_b) + flag flag = x // 2 x = str(x % 2) c = x + c if flag: c = str(flag) + c print(c)