进制转换(用Python实现进制转换器)
进制类型
进制可以分为以下几种类型;
1.1 二进制 字母B表示
1.2 八进制 字母O表示
1.3 十进制 字母D表示
14.4 十六机制 字母H表示
二进制:逢二进一,只有数字0 1
与十进制的换算关系如下;
- 十进制转换为二进制(整数)
(最后一个一可以直接写上去)
2.十进小数制转二进
(如果是负数的话只需要在前面加入负号即可)
1.3二进制转十进制整数
1.4二进制转十进制小数
八进制(0,1,2,3,4,5,6,7)
十六进制 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
在八进制与十六进制之间转换为十进制都是一样的。
具体的可以看到如下python代码
'''用于二进制转换学习的练习代码相关代码和更多笔记教程可在 https://blog.csdn.net/FUTEROX 获取'''
'''多造轮子多学习 '''
def int_to_B(input_):'''对十进制数进行公式运算处理整数部分'''flag=Truex=[]qu_mo = input_qu_yu = input_while flag:qu_yu=qu_mo%2x.append(qu_yu)qu_mo=qu_mo//2if qu_mo==1:x.append(qu_mo)flag=Falsenumber_int=''for i in x[::-1]:number_int=number_int+str(i)return number_int#此时返回的是一个整数部分的二进制数字#print(number_int)def float_to_B(f,jindu=4):'''默认精度为四'''B=[]#存放整数部分for i in range(jindu):f=f*2b_zhengshu=int(f)B.append(b_zhengshu)if b_zhengshu !=0:f=f-b_zhengshufloat_n=''for i in B:float_n=float_n+str(i)return float_nif __name__=="__main__":print("欢迎使用进制转换工具")print('如果你想退出请按Q(必须为大写)')flag=Truewhile flag:input_ = str(input("请你输入一个十进制的数字;"))if input_=="Q":#防止用户误操作必须使用大写字母Q退出print("感谢你的使用!!!")flag=False'''对输入的数字进行判断是否为整数还是小数如果是小数则对她进行分割,由于英文水平的问题,变量名多采用中文拼音进行命名'''if "." in input_:nub = []for i in input_:nub.append(i)if nub[0] != '0':way_point = nub.index(".")int_ = nub[0:way_point]int_un = ''for i in int_:int_un = int_un + str(i)# print(int_un)int_input = int(int_un)int_part = int_to_B(int_input)float_ = nub[way_point:]float_part = ''for i in float_:float_part = float_part + str(i)float_part = "0" + float_partfloat_part = float(float_part)float_part = float_to_B(float_part)# 开始整合字符串,两个函数运算后产生的都是字符串类型last_number = int_part + '.' + float_partlast_number = float(last_number)print(last_number)elif nub[0] == '0':number = float_to_B(float(input_))number = '0.' + numbernumber = float(number)print(number)elif "." not in input_ and input_!="Q":input_ = int(input_)reason = int(int_to_B(input_))print(reason)
可以看到上面的算法将十进制转化为了二进制,那么其实只需要将% 2和 //2换成 %8,//8等等。
不同进制间的转换
1.1二进制 → 八进制
先,看到下图的对应表
例:将二进制的(11010111.0100111)B转换为八进制的步骤如下:
小数点前111 = 7;
010 = 2;
11补全为011,011 = 3;
小数点后010 = 2;
011 = 3;
1补全为100,100 = 4;
当然你也可以二进制换十进制再换八进制。
1.2 八进制 → 二进制
方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。
例:将八进制的(327)O转换为二进制的步骤如下:
3 = 011;
2 = 010;
7 = 111;
读数,读数从高位到低位,011010111,即(327)O=(11010111)B
1.3 八进制 → 十六进制
方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。
例:将八进制的(327)O转换为十六进制的步骤如下:
3 = 011;
2 = 010;
7 = 111;
0111 = 7;
1101 = D;
读数,读数从高位到低位,D7,即(327)O=(D7)H。
etc…
二进制加减(补充)
进制转换(用Python实现进制转换器)相关推荐
- python进制转换函数-Python中进制转换函数的使用
Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...
- 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制
文章目录: 补充知识点:各进制符号表示及其关系--二进制(B).八进制(O).十进制(D).十六进制(前缀OX,后缀H) 扩展:在线进制转换 第一部分:正数 一:[整数]正数十进制转任意进制:辗转相除 ...
- (大数)进制转换 —— 16、8进制转换成2进制
(大数)进制转换 --16.8进制转2进制 16进制转2进制示例代码: #include <iostream> using namespace std; int main(){string ...
- 探索一下进制转换 (Python 实现源码)
Python 实现进制转换 一.导言 导语: 在计算机进行数据交换时,常常会有一个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于二进制进行运算的,但是有时候数据过于庞大,为了方便 ...
- [进制转换]用python实现10进制转任意进制的方法
目录 问题引出: 原理:10进制数转任意进制数都是通过除以目标进制数取余得到的. 具体步骤: 结果展示: 代码实现: ①数值转换预处理 实现原理 ②得到目标进制数 创建字典的原理 问题引出: 各种算术 ...
- python 自定义进制转换_[python]从零开始学python——颜色的16进制于RGB之间的转换...
在学习openstack的时候,发现openstack是python开发的:学习mininet自定义拓扑,发现mininet是python开发的:看看ryu,还是python开发的--于是心中升起了自 ...
- C语言中用栈实现进制转换,利用栈实现进制转换问题
进制转换问题 建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换. 输入 输入只有一行,就是十进制整数. 输出 转换后的二进制数. 样例输入 10 样例输出 1010 十进制怎么转为二进制?十进制 ...
- c语言中10转8和16的转换,(C语言)10进制转换2,8,16进制
(C语言)10进制转换2,8,16进制 作者:vinseven #include"stdio.h" #include"conio.h" #include&quo ...
- java中进制转换_java中的进制转换
进制转换原理 十进制 转 二进制: 原理: 对十进制数进行除 2 运算取余. 6 --> 110 二进制 转 十进制 原理: 二进制 乘以 2 的n次幂 的过程 110 ->0*20+ 1 ...
- 试题13 进制转换(十进制-R进制)
题目: 输入一个十进制数N,将它转换成R进制数输出.在10<=R<=16的情况下,用'A'表示10,用'B'表示11,用'C'表示12,用'D'表示13,用'E'表示14,用'F'表示15 ...
最新文章
- 【自动驾驶】24.欧拉角、旋转向量、四元数、万向锁
- 324. Wiggle Sort II | 324. 摆动排序 II(降序穿插)
- lstm原文_LSTM模型与水文模型在径流模拟中的比较
- 彩色手绘情节人插画装饰素材,psd分层利于应用!
- 强化学习总结(1)--EE问题
- 冰蝎2流量分析,解密以及其防守姿势
- 57 spi电平转换的坑
- 大型网站技术架构 读书笔记2 核心架构要素
- 天津天狮学院电子与计算机学院,天津天狮学院欢迎您!
- psv变革怎么安装游戏_创造变革游戏
- halcon中如何生成椭圆_Halcon中关于角度计算和测量拟合的算子详解
- 用ajax进行分页查询
- 点选识别DLL/滑块识别DLL/通用验证码识别DLL/图标点选/本地识别DLL
- 小米布局金融5年:新网银行遭银保监通报侵权,小米数科被列入经营异常
- 新婚老公的忏悔信(爆笑)[转]
- littleVGL学习笔记8——lv_cont 容器
- 全球与中国2,5-二甲基吡啶试剂市场现状及未来发展趋势
- 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及超级分库分散并发方案(十六)...
- 矢量数据 秦岭淮河_秦岭—淮河一线的范围划分
- 禅道项目管理软件bug过滤脚本
热门文章
- 无聊软件-Tomm闪电文件搜索_已迁移
- ArcGIS土地利用动态度与土地利用程度计算(附练习数据下载)
- oracle md5 重复,33-SQLServer和Oracle使用MD5加密字符串不一致的问题
- Kaggle比赛之Artifical Neural Networks Applied to Taxi Destination Prediction代码整理
- ANSI/ESD最新标准
- 欧几里得算法及其python实现
- 菜鸟Postman的使用教程
- BetaFlight模块设计之八:GPS任务分析
- 四合天地软件测试系统,GZ-2017025软件测试赛题.-全国职业院校技能大赛.doc
- JAVA cmd 命令运行 jar 包