[解決済み】任意の基数の整数を文字列に変換する方法は?
質問
Pythonでは、指定した基数の文字列から、以下の方法で簡単に整数を作成できます。
int(str, base).
逆行列を行いたいのですが。
整数から文字列を生成する
,
つまり、何らかの関数
int2base(num, base)
というようなものである。
int(int2base(x, b), b) == x
関数名/引数の順番は重要ではありません。
任意の数
x
とベース
b
その
int()
を受け入れることになります。
これは簡単に書ける関数です。実際、この質問で説明するよりも簡単です。しかし、私は何かを見逃しているような気がします。
私は、以下の関数について知っています。
bin
,
oct
,
hex
が、いくつかの理由で使えません。
-
これらの関数は、互換性が必要な古いバージョンのPythonでは利用できない (2.2)。
-
異なるベースに対して同じ方法で呼び出すことができる一般的なソリューションが必要です。
-
2,8,16以外の塩基を許容したい
関連
- Pythonエレガントなint(string, base)の逆関数
- Pythonで再帰を使った整数からbase-xへの変換システム
- Pythonで62進数変換
- Pythonで整数を最も短いurl-safe文字列に変換する方法は?
どのように解決するのですか?
古いバージョンのPythonとの互換性が必要な場合、以下のどちらかを使用することができます。 gmpy (これは高速で完全に一般的な int-to-string 変換関数を含んでおり、そのような古いバージョン用にビルドすることができます。最近のものは由緒ある Python や GMP リリースに対してテストされておらず、やや最近のものだけなので、古いリリースを試す必要があるかもしれません) あるいは、速度が落ちるがより便利にするためには Python コード - 例えば Python 2 では最も単純に - を使うことができます。
import string
digs = string.digits + string.ascii_letters
def int2base(x, base):
if x < 0:
sign = -1
elif x == 0:
return digs[0]
else:
sign = 1
x *= sign
digits = []
while x:
digits.append(digs[int(x % base)])
x = int(x / base)
if sign < 0:
digits.append('-')
digits.reverse()
return ''.join(digits)
Python 3 の場合。
int(x / base)
は正しくない結果を導くので、次のように変更する必要があります。
x // base
:
import string
digs = string.digits + string.ascii_letters
def int2base(x, base):
if x < 0:
sign = -1
elif x == 0:
return digs[0]
else:
sign = 1
x *= sign
digits = []
while x:
digits.append(digs[x % base])
x = x // base
if sign < 0:
digits.append('-')
digits.reverse()
return ''.join(digits)
関連
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] JavaScriptで10進数から16進数へ変換する方法
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】文字列をdatetimeに変換する
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】ValueError: xとyは同じサイズでなければならない