演算法學習筆記 4 二進位制求和

2021-08-05 23:13:22 字數 2160 閱讀 1608

給定兩個二進位制數,求他們的和(結果還是二進位制)。

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 第乙個位子若產生進製需要...