python十进制和二进制的转换 (含浮点数)
现在是凌晨1点56 今天6月7号 高考
我终于写完了 , 十进制转二进制的小数部分卡了我将近一个小时
上代码
1 #-*- coding: utf-8 2 from decimal import Decimal 3 def bTod(n, pre=4): 4 ''' 5 把一个带小数的二进制数n转换成十进制 6 小数点后面保留pre位小数 7 ''' 8 string_number1 = str(n) #number1 表示二进制数,number2表示十进制数 9 decimal = 0 #小数部分化成二进制后的值 10 flag = False 11 for i in string_number1: #判断是否含小数部分 12 if i == '.': 13 flag = True 14 break 15 if flag: #若二进制数含有小数部分 16 string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分 17 for i in range(len(string_decimal)): 18 decimal += 2**(-i-1)*int(string_decimal[i]) #小数部分化成二进制 19 number2 = int(str(int(string_integer, 2))) + decimal 20 return round(number2, pre) 21 else: #若二进制数只有整数部分 22 return int(string_number1, 2)#若只有整数部分 直接一行代码二进制转十进制 python还是骚 23 24 def dTob(n, pre=4): 25 ''' 26 把一个带小数的十进制数n转换成二进制 27 小数点后面保留pre位小数 28 ''' 29 string_number1 = str(n) #number1 表示十进制数,number2表示二进制数 30 flag = False 31 for i in string_number1: #判断是否含小数部分 32 if i == '.': 33 flag = True 34 break 35 if flag: 36 string_integer, string_decimal = string_number1.split('.') #分离整数部分和小数部分 37 integer = int(string_integer) 38 decimal = Decimal(str(n)) - integer 39 l1 = [0,1] 40 l2 = [] 41 decimal_convert = "" 42 while True: 43 if integer == 0: break 44 x,y = divmod(integer, 2) #x为商,y为余数 45 l2.append(y) 46 integer = x 47 string_integer = ''.join([str(j) for j in l2[::-1]]) #整数部分转换成二进制 48 i = 0 49 while decimal != 0 and i < pre: 50 result = int(decimal * 2) 51 decimal = decimal * 2 - result 52 decimal_convert = decimal_convert + str(result) 53 i = i + 1 54 string_number2 = string_integer + '.' + decimal_convert 55 return float(string_number2) 56 else: #若十进制只有整数部分 57 l1 = [0,1] 58 l2 = [] 59 while True: 60 if n == 0: break 61 x,y = divmod(n, 2) #x为商,y为余数 62 l2.append(y) 63 n = x 64 string_number = ''.join([str(j) for j in l2[::-1]]) 65 return int(string_number)
晚安
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥