给定两个二进制数,求他们的和(结果还是二进制)。
python中有相应的处理二进制数,十进制数的函数。
首先使用int()方法将二进制数转化成十进制数。
在bin()方法将十进制数转化成二进制数。
bin()方法返回的二进制数前面有0b标记,使用replace()方法将0b替换成None。
最后将结果转化成字符串输出。
In [19]: In [16]: def addBinary(a, b):
...: ...: A = int(a, base=2)
...: ...: B = int(b, base=2)
...: ...: result = bin(A + B).replace('0b','')
...: ...: return str(result)
...: ...:
In [20]: addBinary('1010','1111')
Out[20]: '11001'
在编译器中使用help()方法能知道这些内置函数的用法(关键是要知道这些内置函数的存在不容易)。
In [21]: help(int())
Help on int object:
class int(object)
| int(x=0) -> integer
| int(x, base=10) -> integer
|
| Convert a number or string to an integer, or return 0 if no arguments
| are given. If x is a number, return x.__int__(). For floating point
| numbers, this truncates towards zero.
|
| If x is not a number or if base is given, then x must be a string,
| bytes, or bytearray instance representing an integer literal in the
| given base. The literal can be preceded by '+' or '-' and be surrounded
| by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.
| Base 0 means to interpret the base from the string as an integer literal.
...
In [27]: help(bin)
Help on built-in function bin in module builtins:
bin(number, /)
Return the binary representation of an integer.
>>> bin(2796202)
'0b1010101010101010101010'
str.replace() :
| replace(...)
| S.replace(old, new[, count]) -> str
|
| Return a copy of S with all occurrences of substring
| old replaced by new. If the optional argument count is
| given, only the first count occurrences are replaced.
|
前些天有篇笔记,关于手动转化二进制数和十进制数:大学计算机基础–3