84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
a="1000111000"b="1000000001"ab为字符串
a或b得到1000111001
除了一位一位的处理,有没有什么方便的方法
人生最曼妙的风景,竟是内心的淡定与从容!
代碼:
a = "1000111000" b = "1000000001" c = int(a, 2) | int(b, 2) print('{0:b}'.format(c))
結果:
1000111001
分析:
運算符 | 本身就可以執行 bitwise 的運算,所以我們只要知道如何將 字串 轉為 2進位整數 以及如何將運算完的 整數 結果以 2進位字串 表示即可.
|
int(a, 2) 可以將整數或字串 a 轉為2進位整數(精準來說應該是讓 a 以 2進位 為基底進行整數轉換),接著利用 | 進行 bitwise or,最後 '{0:b}'.format(c) 方法可以讓我們將數值進行 2進位 的格式化處理.
int(a, 2)
a
2進位
'{0:b}'.format(c)
其他想法:
有趣的是,如果我們一位一位處理,利用 generator comprehension 加上其他的一些 functional programming style 的技巧也能用簡短的一行完成任務:
a = "1000111000" b = "1000000001" c = ''.join(str(int(ba) | int(bb)) for ba, bb in zip(a, b)) print(c)
代碼:
結果:
分析:
運算符
|
本身就可以執行 bitwise 的運算,所以我們只要知道如何將 字串 轉為 2進位整數 以及如何將運算完的 整數 結果以 2進位字串 表示即可.int(a, 2)
可以將整數或字串a
轉為2進位整數(精準來說應該是讓a
以2進位
為基底進行整數轉換),接著利用|
進行 bitwise or,最後'{0:b}'.format(c)
方法可以讓我們將數值進行 2進位 的格式化處理.其他想法:
有趣的是,如果我們一位一位處理,利用 generator comprehension 加上其他的一些 functional programming style 的技巧也能用簡短的一行完成任務: