給定兩個二進位制數,求他們的和(結果還是二進位制)。
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
intobject:
class int(object)
| int(x=0) -> integer
| int(x, base=10) -> integer
| | convert a
number
orstring
toan
integer, or
return
0if no arguments
| are given. if x is a
number, return x.__int__(). for floating point
| numbers, this truncates towards zero.
| | if x is not
anumber
orif 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
and2-36.
| base 0 means to interpret the base from
thestring
asan
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 二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 1 使用jdk進製轉化 1,第一時間想到使用jdk自帶方法,將給定的二進位制數轉化為十進位制 2,...
二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 最直觀的解法 public string addbinary string a,string b ...
二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。str儲存了所有a b的累加值。for int k str.length 1 k 0 k 在累加過程中會出現值為3的位子,則將本位子置1,然後進1 if str.charat k 3 第乙個位子若產生進製需要...