0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】16進数を10進数に変えるプログラム!

Posted at

 前回、以下のようなプログラムを作ったため、今回は16進数を10進数に変えるプログラムを作りました。

整数→2進数
整数→16進数

def change_decimal(hexa):
    nums = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,
            '7':7,'8':8,'9':9,'A':10,'B':11,
            'C':12,'D':13,'E':14,'F':15}
    n = len(hexa)
    sum = 0
    for i in range(n):
        num = nums[hexa[i].upper()] * (16**(n - 1))
        sum += num
        n -= 1
    return sum


try:
    hexa = input("16進数を入力してください(マイナス値が扱えません):")
    result = change_decimal(hexa)
    print(result)
except KeyError:
    print('0~9の数字、A~Fの英字を半角で入力してください')

#Python標準機能の場合
print(int(hexa, 16))

 出力結果は以下のようになります。ひとまずマイナス値を扱わないやり方としました。マイナス値にも対応できるようなプログラムも今後は考えてみたいと思います。

16進数を入力してください(マイナス値が扱えません):4f5
1269

ご意見いただけると非常に勉強になります。


0
0
4

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?