int型の変数をn進数表示する必要があったので,その時いろいろ調べたメモです.関数の形で使えるようになっています.
10進数からn進数へ(自作)
紙に書いて(筆算)直接10進数からn進数に変換する方法を,そのままプログラムに書き直したものです.筆算のやり方をど忘れした方は,こちらのリンクを参照してください.
########関数部分############## def Base_10_to_n(X, n): X_dumy = X out = '' while X_dumy>0: out = str(X_dumy%n)+out X_dumy = int(X_dumy/n) return out ############################ #####関数をつかってみる.##### ######今回は二進数に変換###### x10 = 35 x2 = Base_10_to_n(x10, 2) print( x2 )#"100011"が表示される.
「Base_10_to_n(X, n)」という関数で,10進数のint型の数字Xを,n進数の文字列(str型)にして返しています.結果がstr型であることに注意.7行目の「int(X_dumy/n)」という部分でintを書かないと,float型で返してしまうので気を付ける.型推測,恐るべし.
10進数からn進数へ(オススメ)
上の関数だと行数が多い.もっとシンプルに書けないかと考えたところ,再帰的に処理すればよさそうだと考えた.再帰的処理にあまり慣れていないので,参考になるものを探していたら,次のサイトにドンピシャの結果があった.
関数部分だけを少し変形して引用すると次のよう.
########関数部分############## def Base_10_to_n(X, n): if (int(X/n)): return Base_10_to_n(int(X/n), n)+str(X%n) return str(X%n) ############################ #####関数をつかってみる.##### ######今回は二進数に変換###### x10 = 35 x2 = Base_10_to_n(x10, 2) print( x2 )#"100011"が表示される.
int型を入力してstr型を返すのは同じだが,再帰的に関数を定義することで,自作のものより洗練されている気がするので,こちらのアイディアを使わせてもらうことにした.
n進数から10進数へ(自作)
########関数部分############## def Base_n_to_10(X,n): out = 0 for i in range(1,len(str(X))+1): out += int(X[-i])*(n**(i-1)) return out#int out ############################ print(Base_n_to_10('253',4))#"55"と表示される.
「Base_n_to_10(X,n)」という関数で,n進数のstr型の変数Xを10進数の数字(int型)にして返してくれる.
python 何ですか
2・3?
当方では Python3 で行いました。返信が大きく遅れてしまい申し訳ございません。