recherche

Maison  >  Questions et réponses  >  le corps du texte

python中字符串的按位或怎么实现?

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

a或b得到1000111001

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

黄舟黄舟2805 Il y a quelques jours866

répondre à tous(1)je répondrai

  • 巴扎黑

    巴扎黑2017-04-17 17:46:08

    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)

    répondre
    0
  • Annulerrépondre