84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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 的技巧也能用簡短的一行完成任務: