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 convertintegersinto 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)))#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!