python 进制转化 python实现进制转化的代码实例
路飞QAQw 人气:0想了解python实现进制转化的代码实例的相关内容吗,路飞QAQw在本文为您仔细讲解python 进制转化的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,进制转化,下面大家一起来学习吧。
做题思路
(1)掌握十进制转化为其他进制的方法 (2)分析和解决如何将整数和小数分离,以及他们的存储方式。(3)如何设计python函数去实现它们 (4)了解辗转相除法和列表如何运用
提示:以下是本篇文章正文内容,下面案例可供参考
一、运用的知识点
(1)键盘输入函数,列表和类型转化 (2)运算符的理解(/ 和 //的区别) (3) 辗转相除法求余数 (4)栈和队列的知识
二、例题展示
1.题目
代码如下(示例):
输入一个自然数,输出它的二进制、八进制、十六进制表示形式
2.代码
代码如下(示例):
# 自然数 = 十进制数 print("----------------------") print("------ 0.小数 -------") print("------ 1.整数 -------") flag = int(input()) # 初始化a,b的值 a = 0 b = 0.0 x = "" # 判断是否为小数或者整数 if flag == 0: x = input("请任意输入一个小数:") # a为整数部分,b为小数部分 a = int(float(x)) b = float(x) - a elif flag == 1: x = input("请任意输入一个整数:") a = int(x) else: print("输入格式错误") """ 三者都是用辗转相除法求解 """ list_en = ['A','B','C','D','E','F'] list_1 = [] # 收集整数部分 list_2 = [] # 收集小数部分 list_3 = [] # 收集整数部分 list_4 = [] # 收集小数部分 list_5 = [] # 收集整数部分 list_6 = [] # 收集小数部分 # 求二进制数 def fun_two(n,m): if m == 0.0: #整数部分 while n != 0: i = n % 2 list_1.insert(0,i) # 类似于压栈 n = n // 2 else : count = 0 while n != 0: i = n % 2 list_1.insert(0,i) # 类似于压栈 n = n // 2 while count != 10: m = m * 2 j = int(m) m = m - j list_2.append(j) count = count + 1 # 求八进制数 def fun_eight(n, m): if m == 0.0: # 整数部分 while n != 0: i = n % 8 list_3.insert(0, i) # 类似于压栈 n = n // 8 else: count = 0 while n != 0: i = n % 8 list_3.insert(0, i) # 类似于压栈 n = n // 8 while count != 10: m = m * 8 j = int(m) m = m - j list_4.append(j) count = count + 1 # 求十六进制数 def fun_sixteen(n, m): if m == 0.0: # 整数部分 while n != 0: i = n % 16 list_5.insert(0, i) # 类似于压栈 n = n // 16 else: count = 0 while n != 0: i = n % 16 list_5.insert(0, i) # 类似于压栈 n = n // 16 while count != 10: m = m * 16 j = int(m) m = m - j list_6.append(j) count = count + 1 print("yes") def print_str(list1): s = "" for item in list1: if item == '.': item = '.' elif int(item) > 10: l = item - 10 item = list_en[l] s = s + str(item) return s # 二进制求解 fun_two(a,b) # 八进制求解 fun_eight(a,b) # 十六进制求解 fun_sixteen(a,b) list_1.append('.') list_1.extend(list_2) list_3.append('.') list_3.extend(list_4) list_5.append('.') list_5.extend(list_6) s_two = print_str(list_1) s_eight = print_str(list_3) s_sixteen = print_str(list_5) # 测试结果 if __name__ == '__main__': print(a) print(b) print(type(a)) print(type(b)) print(list_1) print(list_3) print(list_5) print("二进制值:", end = "") print(s_two) print("八进制值:", end="") print(s_eight) print("十六进制值:", end="") print(s_sixteen)
总结
结果展示:
加载全部内容