Python base conversion int, bin, oct, hex

principle

Reverse division can be used to convert from decimal to n: Divide the decimal by n until the quotient is 0, and then write the remainder obtained in each step backwards. Convert
n 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 The
same analogy, n Converting from base to decimal is just to change the base of 2 to the base of n


There are other methods, such as using intermediate binary.
For example, convert decimal to octal or hexadecimal, first convert to binary and then convert to octal or hexadecimal.
Decimal => Binary => Hexadecimal
520 => 1000001000 (512+8) => 10 0000 1000 => 208 (hexadecimal)
1314 => 10100100010 (binary) => 2442 (octal) => 522 (hexadecimal)


Convert octal or hexadecimal to decimal
hexadecimal => binary => decimal
522 => 0101 0010 0010 => 1024 + 256 + 32 + 2 = 1280+34 = 1314 (decimal)

Decimal to other numbers

Use built-in functions bin, oct, hex to convert integers into corresponding binary, octal, and hexadecimal;
note that only integers can be converted, and the returned data is a string type

a = 12# 默认数字都是十进制
print(a)# 12
b = 0b0101010111#以0b开头的是二进制数,默认也是十进制输出
print(b)# 343
c = 0o33# 以0o开头的是八进制数
print(c)# 27
d = 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))# 0b1001001001
print(bin(0xff))# 0b11111111
print(oct(0xff))# 0o377
print(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

The use of int function
int (x, base=10) base is the base, the default is decimal. The
int function is commonly 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 can’t pass parameters to base, otherwise an error will be reported.
2. If x is str, you can pass parameters to base. If you don’t pass it, the default is 10; what parameter is passed to base is the number of the string, and then Convert it to a decimal number, but the number in the string must conform to the hexadecimal 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 base
print(int('10',2))# 2
# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'
print(int('0xaaa',16))# 2730
print(int('0b111',2))# 7
print(int('0o1237',8))# 671

There is an error, please point it out and will revise it in time

Remember to like QAQ

Guess you like

Origin blog.csdn.net/hmh4640219/article/details/112506803