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
# 🎜🎜#
binaire |
octal | 10 Base | 16 base | #🎜 🎜#|
---|---|---|---|---|
bin(int(input(), 8))#🎜 🎜# | bin(int(input(), 10))bin(int(input(), 16)) | #🎜 🎜#octal | oct(int(input(), 2)) | #🎜 🎜#-|
oct(int(input(), 16)) | # 🎜🎜# | 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 () | fonction de format pour la conversion | 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__ == '__main__': li = input().split() print(Solution().anyToDecimal(li[0], int(li[1])))
Conversion entre entiers
#🎜 🎜 #m = -1 bin(m & 0xffffffff)
#🎜🎜 #
# 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!