LoginSignup
1
2

More than 3 years have passed since last update.

[Python] 1秒で基数変換するメソッドつくった

Posted at

最初にいいます。
1秒はもりました。
でも、4秒くらいでできます。

使い方

使い方は簡単!

radix_conversion(変換したい数値,その数値は何進数か,何進数に変換したいか)
を入力するだけ!

例えば、

radix_conversion(0b11111111,2,16)

を実行すると

0xff

と出力されます。
2進数である0b11111111を16進数0xffに変換できました。

詳細

めっちゃ簡単です笑

参考資料:Pythonで2進数、8進数、16進数の数値・文字列を相互に変換

radix_conversion.py

def radix_conversion(value,a,b):
    #10→~
    if a == 10:
        if b == 2:
            num = print(bin(value))
        if b == 8:
            num = print(oct(value))
        if b == 16:
            num = print(hex(value))
    #2→~
    if a == 2:
        a_string = str(value)
        if b == 10:
            num = print(int(a_string,0))
        if b == 8:
            num = print(format(int(a_string,0),'#o'))
        if b == 16:
            num = print(format(int(a_string,0),'#x'))
    #8→~
    if a == 8:
        a_string = str(value)
        if b == 10:
            num = print(int(a_string,0))
        if b == 2:
            num = print(format(int(a_string,0),'#b'))
        if b == 16:
            num = print(format(int(a_string,0),'#x'))
    #16→~
    if a == 16:
        a_string = str(value)
        if b == 10:
            num = print(int(a_string,0))
        if b == 2:
            num = print(format(int(a_string,0),'#b'))
        if b == 8:
            num = print(format(int(a_string,0),'#o'))

    return num
1
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2