目录
一、定义一个Dec_system类
并在此Dec_system类下分别定义decToBin()、decToOct()、decToHex()这三个函数实现十进制转换成二进制、八进制、十六进制的功能,定义run()函数实现代码的运行方法。
在__init__方法下实现用户输入功能,利用int(input())将用户输入的数字字符串数据转成整形数据
二、定义decToBin()函数实现十进制转换为二进制
三、定义decToOct()函数实现十进制转为八进制
四、定义decToHex()函数实现十进制转为十六进制
五、定义一个run()方法实现代码的运行方法
六、实例化对象,使用run()方法运行程序
运行结果演示
七、完整代码实现如下
class Dec_system(object):
def __init__(self):
self.num = int(input('请输入十进制的数字:'))
# 十进制转换成二进制
def decToBin(self):
arry = [] #定义一个空数组,用于存放2整除后的商
while True:
arry.append(str(self.num % 2)) #用列表的append方法追加
self.num = self.num // 2 #用地板除求num的值
if self.num == 0: #若地板除后的值为0,那么退出循环
break
return '0b' + "".join(arry[::-1]) #列表切片倒叙排列后再用join拼接
# 十进制转为八进制
def decToOct(self):
arry = [] # 定义一个空数组,用于存放8整除后的商
while True:
arry.append(str(self.num % 8)) # 用列表的append方法追加
self.num = self.num // 8 # 用地板除求num的值
if self.num == 0: # 若地板除后的值为0,那么退出循环
break
return '0o' + "".join(arry[::-1]) # 列表切片倒叙排列后再用join拼接
# 十进制转为十六进制
def decToHex(self):
arry = [] # 定义一个空数组,用于存放16整除后的商
while True:
if self.num % 16 < 10:
arry.append(str(self.num % 16)) # 用列表的append方法追加
elif self.num % 16 == 10:
arry.append('A')
elif self.num % 16 == 11:
arry.append('B')
elif self.num % 16 == 12:
arry.append('C')
elif self.num % 16 == 13:
arry.append('D')
elif self.num % 16 == 14:
arry.append('E')
elif self.num % 16 == 15:
arry.append('F')
self.num = self.num // 16 # 用地板除求num的值
if self.num == 0: # 若地板除后的值为0,那么退出循环
break
return '0x' + "".join(arry[::-1]) # 列表切片倒叙排列后再用join拼接
# 运行方法
def run(self):
print("-----功能界面-----")
print('1、十进制转换成二进制')
print('2、十进制转换成八进制')
print('3、十进制转换成十六进制')
choice = int(input('请输选择的功能:'))
if choice == 1:
print(self.decToBin())
if choice == 2:
print(self.decToOct())
if choice == 3:
print(self.decToHex())
JZ = Dec_system()
JZ.run()