|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
q = True
while q:
num = input('请输入一个整数(输入Q结束程序):')
if num != 'Q':
num = int(num)
print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
else:
q = False
后面十进制转为十六进制、八进制、二进制,怎么一点看不懂
本帖最后由 jackz007 于 2020-2-23 22:47 编辑
很简单,假设要把一个数转换成 X 进制数,那么,只需要用这个数不停地除以 X,直到被除数等于 0 为止。然后,把这个过程中得到的所有的余数按倒序排列就可以了。
- def toX(N , X):
- r , c = '' , ord('a')
- if X < 37:
- while N > 0:
- d = N % X
- r += str(d) if d < 10 else chr(c + d - 10)
- N //= X
- if not len(r):
- r = '0'
- return r[:: -1]
- D = 199
- print("使用 BIF 二进制:%s" % bin(D))
- print("使用 BIF 八进制:%o" % D)
- print("使用 BIF 十六进制:%x" % D)
- print('使用 toX() 二进制:%s' % toX(D , 2))
- print('使用 toX() 八进制:%s' % toX(D , 8))
- print('使用 toX() 十六进制:%s' % toX(D , 16))
复制代码
运行实况
- C:\Bin>python x.py
- 使用 BIF 二进制:0b11000111
- 使用 BIF 八进制:307
- 使用 BIF 十六进制:c7
- 使用 toX() 二进制:11000111
- 使用 toX() 八进制:307
- 使用 toX() 十六进制:c7
- C:\Bin>
复制代码
toX() 函数只能支持转换到 2 ~ 36 进制数,如果转换目标超过 36 进制,还需要进行适当的改造。
|
|