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

WBOY
Libérer: 2023-05-12 14:22:20
avant
12355 Les gens l'ont consulté

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)))
Copier après la connexion
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)))
Copier après la connexion
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))
Copier après la connexion

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])))
Copier après la connexion

Conversion entre entiers

#🎜 🎜 #
m = -1
bin(m & 0xffffffff)
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal