Pythonを勉強しよう! 扱うデータの種類とn進数の変換
Python初心者の備忘録.....
今回はPythonで扱う基本データ型とn進数の変換について勉強してみます。
Pythonで扱う基本データ型
データの種類型 | 型 | 値の例 | 説明 |
---|---|---|---|
整数型 | int型 | 123 , 3 , -8 | intとはinteger(整数)として、小数点を含まないものを示す |
整数型 | float型 | 3.14159, -0.34 | floatとは浮動小数点数として、小数点を含むものを示す |
文字列型 | str型 | ポイント, point | 文字列は「'」(シングルクォーテーション )、「"」(ダブルクォーテーション)で囲んだ文字列 |
論理型 | bool型 | True,False | 真を示すときは「True」偽を示すときは「False」の2つ値を使う |
上記のint型の値の例は、10進数で表しています。数字の前に「-」(マイナス)を入れることで負の値として扱われます。
プログラミングでは10進数だけではなく、2進数、8進数、16進数をよく使用します。
次は2進数、8進数、16進数の書き方を説明します。
2進数、8進数、16進数の書き方
進数 | 表記例 | 説明 |
---|---|---|
2進数 | 0b100,0B111000 | 先頭に「0b」または「0B」をつけます |
8進数 | 0o100,0O111000 | 先頭に「0o」または「0O」をつけます |
16進数 | 0x6,0x1f | 先頭に「0x」または「0X」をつけます |
書き方はわかったが、よく使いたくなるのが10進数で表した数値を「2進数、8進数、16進数」に変換する方法です。
2進数、8進数、16進数へ変換
bin(),oct(),hex()を使用
10進数の整数値を、2進数、8進数、16進数へ変換します。
変換する進数 | 関数 | 入力パラメータ説明 | 出力型 |
---|---|---|---|
2進数 | bin() | bin関数のパラメータ値に10進数 | 文字列型 |
8進数 | oct() | oct関数のパラメータ値に10進数 | 文字列型 |
16進数 | hex() | hex関数のパラメータ値に10進数 | 文字列型 |
# 変数xに10(10進数)を代入 x = 10 # 2進数に変換し、結果を出力 print(bin(x)) # 8進数に変換し、結果を出力 print(oct(x)) # 16進数に変換し、結果を出力 print(hex(x)) # 0b1010 # 0o12 # 0xa
format()を使用
10進数の整数値を、2進数、8進数、16進数へ変換します。
変換する進数 | 関数 | 入力パラメータ説明 | 出力型 |
---|---|---|---|
2進数 | format() | format関数の第一パラメータ1に10進数の数値、第二パラメータに'b' | 文字列型 |
8進数 | format() | format関数の第一パラメータ1に10進数の数値、第二パラメータに'o' | 文字列型 |
16進数 | format() | format関数の第一パラメータ1に10進数の数値、第二パラメータに'x' | 文字列型 |
# 変数xに10(10進数)を代入 x = 10 # 2進数に変換し、結果を出力 print(format(x,'b')) # 8進数に変換し、結果を出力 print(format(x,'o')) # 16進数に変換し、結果を出力 print(format(x,'x')) # 1010 # 12 # a
10進数へ変換
int()を使用
文字列の2,8,10,16進数を10進数に変換します。
変換する進数 | 関数 | 入力パラメータ説明 | 出力型 |
---|---|---|---|
2進数 | int() | format関数の第一パラメータに文字列の2進数の数字、第二パラメータに2 | 整数型 |
8進数 | int() | format関数の第一パラメータに文字列の8進数の数字、第二パラメータに6 | 整数型 |
10進数 | int() | format関数の第一パラメータに文字列の10進数の数字、第二パラメータに10 | 整数型 |
16進数 | int() | format関数の第一パラメータに文字列の16進数の数字、第二パラメータに16 | 整数型 |
# 変数xに文字列の代入 x = '100' # 2進数に変換し、結果を出力 print(int(x,2)) # 8進数に変換し、結果を出力 print(int(x,8)) # 10進数に変換し、結果を出力 print(int(x,10)) # 16進数に変換し、結果を出力 print(int(x,16)) # 4 # 64 # 100 # 256
小数点を含む場合は、小数点以下が切り捨てられる
print(int( 3.1415)) #3