ホームページ  >  記事  >  バックエンド開発  >  Python による基数変換 int、bin、oct、hex について説明します

Python による基数変換 int、bin、oct、hex について説明します

coldplay.xixi
coldplay.xixi転載
2021-01-14 09:44:502807ブラウズ

Python による基数変換 int、bin、oct、hex について説明します

# 関連する無料学習の推奨事項:

Python ビデオ チュートリアル

#Principle

逆除算法は、10 進数を n 進数に変換するために使用できます。商が 0 になるまで 10 進数を n で割った後、各ステップで得られた余りを逆に書き込みます。

n 進数を 10 進数に変換します: (例: 2 進数から 10 進数へ)
101001 => 2^5 2^3 1 = 32 8 1 = 41
10111 => 2^4 2^2 2 1 = 16 4 2 1 = 23
同様に、n 進数を 10 進数に変換するには、2 進数を n に変換することになります。


中間バイナリを使用するなど、他の方法もあります。

たとえば、10 進数を 8 進数または 16 進数に変換します。 、最初に 2 進数に変換してから、8 進数または 16 進数に変換します
10 進数=> 2 進数=> 16 進数
520 => 1000001000 (512 8) => 10 0000 1000 => 208(16 進数)
1314 => 10100100010(2 進数) => 2442(8 進数) => 522(16 進数)


8 進数または 16 進数を 10 進数に変換

16 進数=> 2 進数 => 10 進数
522 => 0101 0010 0010 => 1024 256 32 2 = 1280 34 = 1314 (10 進数)

10 進数を他の 10 進数に変換する

使用組み込み関数 bin、oct、hex は、

整数 を対応する 2 進数、8 進数、または 10 進数に変換します。16 進数; 変換できるのは整数のみであり、返されるデータは文字列型であることに注意してください

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 &#39;str&#39;>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

他の基数を 10 進数に変換します

int 関数の使用

int(x,base=10)base は基数で、デフォルトは 10 進数です
int 関数は、他のタイプのデータを整数に変換するためによく使用されます。

: x には 2 つのタイプがあります: str / int
1. x が純粋な場合数値を指定すると、パラメータをベースに渡すことはできません。そうでない場合は、エラーが報告されます。
2. x が str の場合、パラメータをベースに渡すことができます。渡されない場合、デフォルトは 10 です。ベースにパラメータが渡される場合は、文字列が返されます。は 10 進数とみなされ、10 進数に変換されますが、文字列内の数値は基本仕様に準拠している必要があります。準拠していない場合はエラーが報告されます

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
関連する無料学習の推奨事項:

Python チュートリアル (ビデオ)

以上がPython による基数変換 int、bin、oct、hex について説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。