-
python十进制转九进制_Python-任一十进制数转换为其他进制数
2021-01-13 22:51:40对于任一的十进制数据,可先将其分成整数部分和小数部分。整数部分利用Python自带的bin()函数、oct()函数和hex()函数可直接转换(详见Python-编码规则);小数部分可利用该编程方法(详见Python-十进制的小数部分转换为...对于任一的十进制数据,可先将其分成整数部分和小数部分。整数部分利用Python自带的bin()函数、oct()函数和hex()函数可直接转换(详见Python-编码规则);小数部分可利用该编程方法(详见Python-十进制的小数部分转换为其他进制数)进行转换。最后分别将转换之后的整数部分和小数部分写在一起即可。
这里在前面编程方法的基础上(详见Python-十进制的小数部分转换为其他进制数),对以上过程用一个程序来实现。
#代码如下:
import math
from decimal import Decimal
datum = input('请输入要转换的十进制数:')
# 通过input函数得到的变量为字符串类型,即datum为字符串类型的变量
ly = 16
# 可调整的地方1:这里设置要转换为几进制
# 先开始整数部分的转换
AA = int(float(datum))
# int()函数不能将字符串类型的数据转换为整数,所以得先用float()函数将其转换为浮点型数据(注意float函数只能转换数字类的字符串,而不能转换文字类的字符串)
# int()函数对浮点型数据进行转换时,是向下取整(即直接取整数部分)
if ly == 2:
BB=bin(AA)
if ly == 8:
BB=oct(AA)
if ly == 16:
BB=hex(AA)
# 再开始小数部分的转换
aa = Decimal(str(datum)) - Decimal(str(AA))
# Decimal输入的参数要求是字符串类型,如Decimal('1.1')+Decimal('2.2'),所以这里应该利用str()函数将数据转换为字符串类型
if aa > 0:
# 设置这个条件语句的目的是防止输入的刚好是一个整数,这样的话就不用对小数部分进行转换了
n = 10
# 可调整的地方2:设定保留的二进制小数的位数(之所以要设定是因为有些十进制的小数如0.7,化为二进制的小数时,会出现无限循环的情况)
m = range(n)
cc = []
for i in m:
bb = aa * ly
dd = math.floor(bb)
# math.floor()函数向下取整(即直接取整数部分);math.ceil()函数向上取整数(即取整数部分加1);这两者均不进行四舍五入的运算
cc.append(dd)
aa = Decimal(str(bb)) - Decimal(str(dd))
# Decimal输入的参数要求是字符串类型,如Decimal('1.1')+Decimal('2.2'),所以这里应该利用str()函数将数据转换为字符串类型
if ly > 10:
if cc[i] == 10:
cc[i] = 'A'
if cc[i] == 11:
cc[i] = 'B'
if cc[i] == 12:
cc[i] = 'C'
if cc[i] == 13:
cc[i] = 'D'
if cc[i] == 14:
cc[i] = 'E'
if cc[i] == 15:
cc[i] = 'F'
# 以上的条件语句是当将数据转换为十六进制的时候,应该用字母来代替10以上的数字而添加的
ee = [str(i) for i in cc]
ff = ''.join(ee)
# 以上两行是将列表中的元素连起来形成一个字符串后再进行输出
# 将整数部分和小数部分汇总
print('转换得到的' + str(ly) + '进制数为:' + str(BB) + '.' + ff)
else:
print('转换得到的' + str(ly) + '进制数为:' + str(BB))
当然,可以将小数部分转换的程序写成一个函数或是一个模块,这样在以后的使用中就可以直接引用或者导入,这里就不赘述了。
以上程序是正数的转换,如果需要转换负数,那就先转换该数的正数形式,再在转换结果前加上负号即可。
-
python 二进制转十进制_Python基础找茬系列01--各种进制转换那些事
2020-11-24 05:31:23一、各种进制1、十进制: 都是以0-9这九个数字组成,不能以0开头。...二、进制与十进制的相互转换1、二进制与十进制间的转换①十进制转为二进制方法:十进制转二进制的转换原理:除以2,反向取余数,直到商为0终...一、各种进制
1、十进制: 都是以0-9这九个数字组成,不能以0开头。
2、二进制: 由0和1两个数字组成。
3、八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4、十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。
二、进制与十进制的相互转换
1、二进制与十进制间的转换
①十进制转为二进制
方法:十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。
②二进制转十进制
方法为:把二进制数按权展开、相加即得十进制数。
2、八进制与十进制间的转换
3、十六进制与十进制间的转换
①十进制转十六进制
十进制的7692就等于16进制中的1E0C,7692=1E0CH,在1E0C后面加个H,就表示它是16进制的数。
②十六进制转十进制
16进制的2AF5就等于10进制中的10997,2AF5H=10997
三、赠语
生活的理想,就是为了理想的生活。
>>下一篇《python基础找茬系列02--'=='与'is'的区别,别傻傻分不清楚》
-
java > >二进制、八进制、十进制、十六进制之间的转换
2019-05-17 21:58:27java > >二进制、八进制、十进制、十六...方法一、十进制转成二进制,然后再由二进制转成八进制(十六进制) 方法二、十进制转八进制(十六进制) 八、十六进制转十进制 九、十六进制转二进制 ... -
进制转换锦集(二进制、八进制、十进制、十六进制)超详细的哦!
2020-08-05 22:48:22先从我们最熟悉的十进制入手吧,其他进制与十进制的转换方法都是一样的,保证能全部记住! 整型有4种进制形式: 1.十进制: 都是以0-9这九个数字组成,不能以0开头。 2.二进制: 由0和1两个数字组成。 3.八进制: ...今天来总结一下各种进制转换问题,详细齐全易于理解,希望对你有帮助哦!
先从我们最熟悉的十进制入手吧,其他进制与十进制的转换方法都是一样的,保证能全部记住!
整型有4种进制形式:
1.十进制: 都是以0-9这九个数字组成,不能以0开头。
2.二进制: 由0和1两个数字组成。
3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。先来贴一张进制转换表:
一、十进制转换成二进制、八进制、十六进制
整数转换
1.十进制与二进制之间的转换:
(1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。(2)具体做法:
将某个十进制数除2得到的整数部分保留,作为第二次除2时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。
例如:9(十进制)→1001(二进制)
2.十进制与八进制之间的转换:
(1)转换原理:除以8,反向取余数,直到商为0终止。(2)具体步骤与二进制一样
例如:十进制数796转换成八进制数:将796除8取得第一个余数为4,将除8得到的整数部分99作为第二次的被除数,重复上述步骤,直至最终整数部分为0就结束。将取得的所有余数逆序输出
则为:796–>1434
3.十进制与十六进制之间的转换:
(1)转换原理:除以16,反向取余数,直到商为0终止。
(2)具体步骤也和二进制、八进制一样,重复上述做法即可得到十六进制数。
例如:十进制数796转换为十六进制数
即为:796–>31c
(3)需要注意的是,十六进制数是由0-9和A-F(或者a-f)组成的,A相当于十进制中的10,B相当于11,依次类推,F相当与15,上述事例中取得的余数12即为十六进制中的c总结:以上几种进制的整数部分转换原理都是除进制数取余数,倒序输出
再来贴一张小数部分进制表
小数部分
1.十进制数转换成二进制数
(1)原理:十进制小数转换成二进制小数采用 “乘2取整,顺序输出” 法。(2)具体做法是:
用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例题: 0.68D = ______ B(精确到小数点后5位)
**解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.
例如:十进制小数0.68转换为二进制数
步骤:
0.682=1.36 -->1
0.362=0.72 -->0
0.722=1.44 -->1
0.442=0.88–>0
0.88*2=1.76 -->1
已经达到了题目要求的精度,最后将取出的整数部分顺序输出即可
则为:0.68D–>0.10101B2.十进制转换成八进制
(1)原理:十进制小数转换成八进制小数采用 “乘8取整,顺序输出” 法。(2)思路和十进制转二进制一样,参考如下例题:
例题: 10.68D = ______ Q(精确到小数点后3位)
**解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.
例如:十进制数10.68转换成八进制数,分为整数部分和小数部分求解
步骤:
(1)整数部分
10/8=1 -->2
1/8=0 -->1
倒序输出为12
(2)小数部分
0.688=5.44 -->5
0.448=3.52 -->3
0.52*8=4.16 -->4
已经达到了题目要求的精度,即可结束
则小数部分为:0.68–>0.534
因此10.68D -->12.534Q3.十进制数转换成十六进制数
(1)原理:十进制小数转换成十六进制小数采用 “乘16取整,顺序输出” 法。
(2)思路也是一样的,就不重复了
例题: 25.68D = ______ H(精确到小数点后3位)**解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.
步骤:
(1)整数部分
25/16=1 -->9
1/16=0 -->1
倒序输出为:19
(2)小数部分
0.6816=10.88 -->a(即十进制中的a)
0.8816=14.08 -->e
0.08*16=1.28 -->1
已经达到了要求的精度,顺序输出为:ae1
则:25.68D -->19.ae1H总结:小数部分转换原理都是乘进制数取整数部分,再将整数部分顺序输出。
二、有关二进制、八进制、十六进制转换为十进制
整数转换
1、全部总结如下:
三者转换原理都是一样的
2.1二进制转十进制
再来贴一个:
小数部分
1.二进制转换为十进制(1)原理:整数部分按上述所讲进行操作即可,小数部分从小数点后一位为-1开始算起,以后依次为-2、-3……
(2)具体运用以及步骤举例说明:
2、八进制数转换成十进制数
(1)原理:整数部分操作以及运算不变,小数部分同二进制类似,将2改为8即可
(2)具体步骤方法如下:
例如:八进制数72.45转换成十进制数
步骤:
(1)整数部分:
78^1+ 28 ^0=58
(2)小数部分
48^(-1) +58 ^(-2)=0.5+0.078125=0.578125
则为:72.45 -->58.5781253、十六进制数转换成十进制数
(1)原理:整数运算一样,小数部分换成16即可
(2)具体方法步骤如下:例:1A6.3B8H =116^2+A16 ^1+616 ^0 +316 ^(-1)+
B16 ^(-2)+816 ^(-3) =419.232422总结:以上二进制、八进制、十六进制转换为十进制当中的整数部分指数是从0开始递增,小数部分是从-1开始递减,原理都是一样的。
三、二进制转换成八进制数、十六进制数
1、二进制转换成八进制
原理:取二进制数中的三位合为八进制数的一位2、二进制转换成十六进制
原理:取二进制数中的四位合为十六进制数的一位下面例子中:
二进制数1010 0100B转换成八进制数为244Q
转换成十六进制数为a4H再来贴个例子:
四、八进制、十六进制转换成二进制
1、八进制数转换成二进制
原理:八进制数的一位是二进制数的三位2、十六进制数转换成二进制
原理:十六进制数的一位是二进制数的四位来看看具体例子吧!上面也有涉及到:
五、八进制与十六进制之间的转换
这两者之间的转换可以借助十进制或者二进制完成,可以先将八进制转换成十进制或二进制,再转换成十六进制。通过间接转换来实现。以上就是所有的常用进制转换,包括整数部分和小数部分,已经是很详细了,个人觉得通过例子来理解是最好的方法,记住进制转换的一些原理和规律,换成其他进制也是一样的用。关于进制转换问题时比较基础的,所以一定要掌握哦!
希望我的文章对你有所帮助,嘻嘻!若有错误的地方还望大家批评指正,谢谢大家阅读!
-
基础【九】进制转换
2019-09-26 19:36:33十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 二进制转十进制 方法为:把二进制数按权展开、相加即得十进制数。 ... -
数组(九)--十进制转换为十六进制
2017-10-31 21:00:35方法一: 1、以60为例:(假设为32位) 60 除以 16 商 3 余。。。。。。。。12 3 除以 16 商 0 余。。。。。。。。。3 2、然后将余数倒过来,两位数的余数则转化为字母。 数字与字母对应: 10-----A... -
python3 第十九章 - 写一个10进制转任意进制的函数
2018-01-24 00:14:00我们先回忆下之前所学的进制转换的知识(详见:第十章),10进制转其它进制的方法是: 整数部分,除基取余,逆序排列 小数部分,乘基取整,顺序排列 负数,按绝对值处理 好,假设我们需要转化的数都是正... -
九、进制转换
2019-09-25 22:22:33什么是进制 进制其实就是进位制度,规定好的进位方法,列如:十进制是逢十进一,二进制是逢二进一 a.常见的进制:十进制【0~9】,二进制【0~1】,八进制【0~7,用数字0开头】,十六进制【0~9,a~f或者A~F,用0x或者... -
十六进制转八进制java_蓝桥网试题 java 基础练习 十六进制转八进制
2021-02-12 20:36:01-------------------------------------------------------------------------------------------------------------------(基础练习第二题就难住了 ...而long类型才十九位,肯定不能用系统自带的进制转换方法,需要自... -
hive转16进制unhex_Python基础找茬系列01--各种进制转换那些事
2021-01-06 00:13:06一、各种进制1、十进制: 都是以0-9这九个数字组成,不能以0开头。...二、进制与十进制的相互转换1、二进制与十进制间的转换①十进制转为二进制方法:十进制转二进制的转换原理:除以2,反向取余数,直到商为0终... -
数位进制转换详解
2021-01-16 20:24:26二进制和十进制互相转换 十进制 → 二进制 方法一 十进制数:3765,如何转换成二进制数? 第一步,写出二进制的权数如下: 第十二位 第十一位 第十位 第九位 第八位 第七位 第六位 第五位 第四位 第三位 第二位 ... -
python二级--一篇搞懂进制转换
2019-07-31 09:09:13一、各种进制 1、十进制: 都是以0-9这九个数字组成,不能以0开头。 2、二进制: 由0和1两个数字组成。 3、八进制: 由0-7数字组成,为了区分与其他进制的数字...方法:十进制转二进制的转换原理:除以2,反向取... -
C语言基础中,进制之间的转换
2016-11-22 11:53:00C语言基础中,进制之间的转换 作者:王可利(Star·星星) 整型的表现形式有如下几种方式: 十进制: 都是以0-9这九个数字组成,不能以0开头。 二进制: 由0和1两个数字组成。...1.十进制转二进制 方法:... -
【leetcode 简单】 第九十五题 数字转换为十六进制数
2018-08-27 23:32:00给定一个整数,编写一个算法将这个数转换为十六进制数。...对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的数确保在32位有符号整数范围内。 不能使用任何由库提供的将数字直接转换或格式化为... -
从零开始刷力扣(九十)——405. 数字转换为十六进制数
2021-02-06 22:07:53分类:数与位 题目描述 给定一个整数,编写一个算法将这个数转换为十六进制数。... 不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。 示例 1: 输入: 26 输出: "1a" 示例 2: 输入: .. -
学String类后的习题及二、八、十、十六、九进制之间相互转换
2017-04-10 14:24:53在学习String类后,发现做回文数可以不用数组做,只需要用到String类中的charAt(int index) 方法获取index处的char值,取到字符串首位的字符依次进行比较即可。 代码如下: import java.util.Scanner; public class ... -
一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码...
2020-07-04 18:23:46由上述数学推导过程可知,函数体内的判断条件即是七进制和九进制化为十进制时二者相等,而这需要在所有符合七进制(七和九取并集)的三位数内进行筛选,而七进制遇七进一的特点就是突破口. for(i=1;i<7;i++) for(j=0... -
【2-3】《Java基础语法》——二进制、变量、数据类型、标识符、数据类型转换、特殊变量定义、方法、运算符...
2020-09-26 16:24:08文章目录基础语法一、二进制1、补码2、二进制与十进制的转换二、变量概述三、数据类型1、分类2、范围四、标识符1、命名规则2、Java中的关键字3、定义变量4、变量练习五、数据类型转换六、特殊变量定义1、float变量2... -
程序员二进制计算器 v1.36
2014-07-16 16:21:43对于整型值,默认按十进制输出,此时%d可省略。 %d 123456789 = 123456789 (4)按十六进制输出 %x或%X 用%x时,字母abcdef输出为小写,用%X时,字母abcdef输出为大写。 %x 31 = 0x1f %X 31 = 0X1F (5)... -
****** 二十九 ******、软设笔记【计算机体系结构】-机内代码及运算
2018-05-14 14:00:13机内代码及运算 一。...十进制转二进制 把被转换的十进数整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简称“除2取余法”。 2.二进制转十进制 方法是:二级制数按权展开求... -
实验九
2018-12-11 22:45:00一、补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 ... 通过本次实验,复习了数值和数字字符之间的转换方法,学会了div指令用法,掌握十进制两位数输出的方法 ;同时理解了80×2... -
05-C语言运算符
2019-09-22 11:10:52目录: ...1 进制转换是人们利用符号来计数的方法,包含有多种数据转换,进制转换由一组数码符号和两个基本因素(位与权),进制包括二进制、十进制、十进制。 2 二进制和十进制 位与权: 9... -
ptrhon总结(十九):python模块(base64, struct, hashlib.md5 、sha1、hmac)
2019-07-01 14:41:561.用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。... -
Java工作学习----第九课 Java中内部类 Object类 System类 Date类 基本数据类型的包装类 String类 ...
2021-02-01 22:02:07Object类 是一个超类,是所有类的一个父类。 Object中所定义的方法,是所有对象都具备的方法 ...返回的是包名跟哈希值地址,地址表现形式是十六进制的,与上边十进制的数字进行进制转换以后是相同的 equals 返回 -
java 左边补0_【计算机基础】在0和1的世界里来来回回
2020-12-31 16:04:51二进制数 VS 十进制数本小节讲二进制写法,以及到十进制的转换方法,如果已熟悉这些内容可以直接跳到下一小节。我们生活在一个十进制的世界中。10个一毛就是一块,10个一两就是一斤。在数学上有满十进一或借一当十。... -
【计算机基础】在0和1的世界里来来回回
2019-07-15 11:01:00二进制数 VS 十进制数本小节讲二进制写法,以及到十进制的转换方法,如果已熟悉这些内容可以直接跳到下一小节。我们生活在一个十进制的世界中。10个一毛就是一块,10个一两就是一斤。在数学上有满十进一或借一当十。... -
网络管理员学习笔记_第九章 计算机硬件基础知识_005
2018-10-30 10:08:091. 数制 (1)数制是数的表示及计算方法。 (2)任何数制会包含3个要素: a....二进制就是逢二进一。...(3)常见的数制:二进制,十进制,八进制,十六进制 (4)常见的操作:进制转换。 2. ... -
事物的正反两面被哲学家讨论了几千年。计算机里的0和1也照旧玩出了各种花样。...
2019-07-17 16:54:59二进制数 VS 十进制数本小节讲二进制写法,以及到十进制的转换方法, 如果已熟悉这些内容可以直接跳到下一小节。 我们生活在一个十进制的世界中。 10个一毛就是一块,10个一两就是一斤。 在数学上有满十进一或借一...