python中字符串的按位或怎么实现?
黄舟
黄舟 2017-04-17 17:44:08
0
1
892

a="1000111000"
b="1000000001"
ab为字符串

a或b得到1000111001

除了一位一位的处理,有没有什么方便的方法

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(1)
巴扎黑

Code :

a = "1000111000"
b = "1000000001"

c = int(a, 2) | int(b, 2)

print('{0:b}'.format(c))

Résultat :

1000111001

Analyse :

L'

opérateur| lui-même peut effectuer des opérations au niveau du bit, il suffit donc de savoir comment convertir la chaîne en un entier à 2 charges et comment convertir le terminé. 🎜> Le résultat de l'entier peut être représenté par chaîne à 2 portées .

int(a, 2) peut convertir un entier ou une chaîne a en un entier binaire (pour être précis, laissez a utiliser 2進位 comme base pour la conversion d'entier), puis utilisez | pour effectuer une opération au niveau du bit ou , Enfin, la méthode '{0:b}'.format(c) nous permet de formater la valeur au format binaire.


Autres pensées :

Fait intéressant, si nous le faisons petit à petit, en utilisant la compréhension du générateur ainsi que d'autres astuces de style de programmation fonctionnelle, nous pouvons accomplir la tâche en une seule ligne :

a = "1000111000"
b = "1000000001"

c = ''.join(str(int(ba) | int(bb)) for ba, bb in zip(a, b))
print(c)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal