Maison >développement back-end >Tutoriel Python >Quelles sont les méthodes de conversion hexadécimales courantes en Python ?

Quelles sont les méthodes de conversion hexadécimales courantes en Python ?

WBOY
WBOYavant
2023-05-12 14:22:2012398parcourir

1. Conversion de base standard

La plus couramment utilisée est la fonction intégrée de python pour la conversion de base. Généralement, lors de l'utilisation de la fonction intégrée pour la conversion, les caractères saisis par la console. sont d'abord Les chaînes ou les chaînes personnalisées sont d'abord converties en décimales, puis converties en d'autres décimales. Les conversions courantes sont binaires, décimales, octales et hexadécimales. Un principe est suivi :

Utilisez la fonction int pour en convertir d'autres. bases en décimal, utilisez la fonction bin pour convertir d'autres bases en binaire, utilisez la fonction oct pour convertir d'autres bases en octal et convertissez d'autres bases en hexadécimal en fonction hexadécimale, et utilisez décimal comme pont au milieu pour la conversion, c'est-à-dire , en utilisant la fonction int()

et après conversion au poids correspondant, la chaîne correspondante aura le préfixe correspondant, Le préfixe binaire est 0b, le préfixe octal est 0o, et le préfixe hexadécimal est 0x

Le tableau suivant reflète la conversion entre les bases communes

# 🎜🎜##🎜 🎜##🎜 🎜#Base binaire-# 🎜🎜#bin(int(input(), 10))bin(int(input(), 16))#🎜 🎜#-oct(int(input(), 10)) oct(int(input(), 16))# 🎜🎜##🎜🎜 #-int(input(),16)#🎜 🎜#-
if __name__ == '__main__':
    # input接收到的是字符串, 使用int函数定义输入的是什么进制的字符串转换为10进制数字
    print(bin(int(input(), 16)))
    print(int(input(), 10))
    print(oct(int(input(), 10)))
    print(hex(int(input(), 10)))
fonction de format pour la conversion
if __name__ == '__main__':
    print("{:b}".format(int(input(), 8)))
    print("{:o}".format(int(input(), 8)))
    print("{:x}".format(int(input(), 8)))
2 Conversion entre n'importe quelle base

binaire
octal 10 Base 16 base
bin(int(input(), 8))#🎜 🎜# #🎜 🎜#octal oct(int(input(), 2))
decimal int(input(), 2)) int(input(), 8)
#🎜 🎜# 16 hexadécimal hex(int(input(), 2)) hex(int(input(), 8)) hex(int(input(), 10))
Lors de l'utilisation fonctions intégrées, utilisez simplement la fonction correspondant à la base vers laquelle vous souhaitez convertir. Vous devez d'abord convertir en décimal (fonction int()). Les fonctions intégrées impliquées dans la conversion décimale sont : binaire : bin(), octal : oct(), décimal : int(), hexadécimal : hex () Ajouter b, o , x à formater pour convertir d'autres bases en binaire, octal ou hexadécimal

Conversion de décimal vers d'autres codes de base#🎜. 🎜## 🎜🎜#

class Solution:
    # 将十进制数字转换为任意的进制(1-16)
    def decimalToAny(self, decimal: int, x: int):
        remainder = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
        # 当n大于0的时候执行循环
        res = ""
        while decimal:
            res = remainder[decimal % x] + res
            decimal //= x
        return res
if __name__ == '__main__':
    decimal, x = map(int, input().split())
    print(Solution().decimalToAny(decimal, x))

Convertir d'autres nombres en base 10 en binaire 10

class Solution:
    # 快速幂: x ** n
    def quickPower(self, x: int, n: int):
        res = 1
        while n > 0:
            if n % 2 == 1:
                res *= x
            x *= x
            n //= 2
        return res
    def anyToDecimal(self, s: str, base: int):
        n = len(s)
        res = 0
        for i in range(n):
            # 数字, ord函数获取字母的ascii值
            if "0" <= s[i] <= "9":
                res += (ord(s[i]) - ord("0")) * self.quickPower(base, n - i - 1)
            # 16进制数字对应的权重
            elif "a" <= s[i] <= "f":
                res += (ord(s[i]) - ord("a") + 10) * self.quickPower(base, n - i - 1)
            else:
                res += (ord(s[i]) - ord("A") + 10) * self.quickPower(base, n - i - 1)
        return res
if __name__ == &#39;__main__&#39;:
    li = input().split()
    print(Solution().anyToDecimal(li[0], int(li[1])))

Conversion entre entiers

#🎜 🎜 #
m = -1
bin(m & 0xffffffff)

Chaîne en entier

#🎜🎜 #

# 1. 10 -> 16
hex(number)
# 2. 10 -> 2
bin(number)
# 3. 10 -> 8
oct(number)# 4. x进制 -> 10
int(Union[str, bytes, bytearray],base=x)
------------------
print(int("0x16", base=16)) // 22

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer