Home > Article > Backend Development > Python explains base conversion int, bin, oct, hex
Related free learning recommendations: python video tutorial
Principle
The inverse division method can be used to convert decimal to n-base: divide the decimal by n until the quotient is 0, and then write the remainder obtained in each step backwards.
Convert n-base to decimal: (Example : Binary to decimal)
101001 => 2^5 2^3 1 = 32 8 1 = 41
10111 => 2^4 2^2 2 1 = 16 4 2 1 = 23
By analogy, to convert n-base to decimal is to change base 2 to n.
There are other methods, such as using intermediate binary,
For example, convert decimal to Octal or hexadecimal, first convert to binary and then to octal or hexadecimal
Decimal=> Binary=> Hexadecimal
520 => 1000001000 (512 8) => 10 0000 1000 => 208(Hex)
1314 => 10100100010(Binary) => 2442(Octal) => 522(Hex)
Convert octal or hexadecimal to decimal
Hexadecimal=> Binary=> Decimal
522 => 0101 0010 0010 => 1024 256 32 2 = 1280 34 = 1314 (decimal)
Convert decimal to other decimal numbers
Use the built-in functions bin, oct, and hex to convert integers into corresponding binary, octal, or decimal Hexadecimal;
Note that only integers can be converted, and the returned data is a string type
a = 12# 默认数字都是十进制print(a)# 12b = 0b0101010111#以0b开头的是二进制数,默认也是十进制输出print(b)# 343c = 0o33# 以0o开头的是八进制数print(c)# 27d = 0x24# 以0x开头的是十六进制数print(d)# 36
a = 12 # 12是十进制数print(bin(a))# 0b1100 使用bin内置函数可以将数字转换为二进制print(oct(a))# 0o14 使用oct内置函数可以将数字转换为八进制print(hex(a))# 0xc 使用hex内置函数可以将数字转换为十六进制print(type(bin(a)))# <class 'str'>print(bin(0o1111))# 0b1001001001print(bin(0xff))# 0b11111111print(oct(0xff))# 0o377print(hex(0b00011111)) # 0x1f# print(bin(1.12))# print(oct(1.12))# print(hex(1.12))# TypeError: 'float' object cannot be interpreted as an integer
Convert other bases to decimal
Use of int function
int(x, base=10)base is base, the default is decimal
The int function is often used to convert other types of data into integers
Note:
There are two types of x: str / int
1. If x is a pure number, you cannot pass parameters to base, otherwise an error will be reported
2. If x is str, you can pass parameters to base. If not passed, the default is 10; whatever parameters are passed to base, the string will be considered to be a decimal number, and then converted into a decimal number, but the number in the string must comply with the base specification, otherwise an error will be reported
print(int(3.112))# 3# print(int(3.112,8))# TypeError: int() can't convert non-string with explicit baseprint(int('10',2))# 2# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'print(int('0xaaa',16))# 2730print(int('0b111',2))# 7print(int('0o1237',8))# 671
Related free learning recommendations: python tutorial (video)
The above is the detailed content of Python explains base conversion int, bin, oct, hex. For more information, please follow other related articles on the PHP Chinese website!