进制间转换练习题

进制间转换练习题
进制间转换练习题

1)二进制转换成十进制(1001101.1011)2 =(?)10

解:77.6875

(1011011.011)2 =(?)10

解:91.375

2)八进制转换成十进制(123.56)8 =(?)10

解:83.71875

(56.12)8 =(?)10

解:46.15625

3)十六进制转换成十进制(1AF.12)16 =(?)10

解:431.0703125

(56.12)16=(?)10

解:86.0703125

4)十进制转换成二进制(123)10 =(?)2

解:1111011

综上(123)10 =(1111011)2

(89.375)10=(?)2

解:1011001.011

综上(89.375)10=(1011001.011)2 5)八进制转换成二进制(123)8 =(?)2

解: 1010011

(345.76)8=(?)2

解:11100101.111110

6)二进制转换成八进制(1100101)2 =(?)8

解:145

(11011.11011)2=(?)8

33.66

7)十六进制转换成二进制(ACF)16 =(?)2 101011001111

(168.891)16=(?)2

101101000.100010010001

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码0~9 0~1 0~7 0~15 基10 2 8 16 权10o,101,102,…2o,21,22,…8o,81,82,…16o,161,162,…特点逢十进一逢二进一逢八进一逢十六进一 十进制4956= 4*103+9*102 +5*101+6*10o 二进制1011=1*23+0*22 +1*21+1*2o 八进制4275=4*83+2*82 +7*81+5*8o 十六进制81AE=8*163+1*162 +10*161+14*16o

二、各种进制的转换问题 1.二、八、十六进制转换成十进制 2.十进制转换成二、八、十六进制 3.二进制、八进制的互相转换 4.二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

3、二进制、八进制的互相转换 方法: ?二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 ?八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: ?二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 ?十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算

十进制数与十六进制数的转换方法

若十进制数23785转为十六进制,则用23785/16=1486余9,1486/16=92余14,92/16=5余12,5/16=0余5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 + ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001 (1)0010 (2)0011 (3)0100 (4)0101 (5)0110 (6)0111 (7)1000 (8)1001 (9)1010(A)1011 (B)

各种进制之间转换方法

各进制转换方法(转载)一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ? 基:数码的个数 ?权:每一位所具有的值

、各种进制的转换问题 1. 二、八、十六进制转换成十进制 2. 十进制转换成二、八、十六进制 3. 二进制、八进制的互相转换 4. 二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 例(HloJ-l/25+lx24+l/23+0/22+ h2:+h20 -(59)10 例(136)8=lx82+3x8l+6x8°=(94)10 例(1F2^)1S=1X163+15X16S +2\16] + 10/16° = (7978)10 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

例把十进制数159转换成八进制数 8| 19 8辽 (159)IO =(237)8 例把十进制数59转换成二进制数 (59)IO =(111O11)2 2 余余余余余余 8 159

例把十进制数459转换成十六进制数 u | 1| C| B (459)io=(1CB)ib ' 3、二进制、八进制的互相转换 方法: *二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制*八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例(246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 *十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算 方法:逢满进具体计算与平时十进制的计算类似,以十六进制为例: 加法:

计算机考试中各种进制转换的计算方法

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位 0 * 20 = 0 第1位 0 * 21 = 0 第2位 1 * 22 = 4 第3位 0 * 23 = 0 第4位 0 * 24 = 0 第5位 1 * 25 = 32 第6位 1 * 26 = 64 第7位 0 * 27 = 0 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位: 1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 2.2 八进制数转换为十进制数 八进制就是逢8进1。 八进制数采用 0~7这八数来表达一个数。

八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方…… 所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507换算成十进制。 第0位 7 * 80 = 7 第1位 0 * 81 = 0 第2位 5 * 82 = 320 第3位 1 * 83 = 512 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数 1507 转换成十进制数为 839 2AF5换算成10进制: 第0位: 5 * 160 = 5 第1位: F * 161 = 240 第2位: A * 162 = 2560 第3位: 2 * 163 = 8192 +

二进制,八进制十进制十六进制之间数据转换

二进制,八进制十进制十六进制之间数据转换 十进制转二进制(整数及小数部分): 1、把该十进制数,用二因式分解,取余。 以235为例,转为二进制 235除以2得117,余1 117除以2得58,余1 58除以2得29,余0 29除以2得14,余1 14除以2得7,余0 7除以2得3,余1 3除以2得1,余1 从得到的1开始写起,余数倒排,加在它后面,就可得11101011。 2、把十进制中的小数部份,转为二进制。 把该小数不断乘2,取整,直至没有小数为止,注意不是所有小数都能转为二进制! 以0.75为例, 0.75剩以2得1.50,取整数1 0.50剩以2得1,取整数1,顺序取数就可得0.11。 1、二进制数、八进制数、十六进制数转十进制数 有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D 110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D 2、十进制数转二进制数、八进制数、十六进制数 方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。 例:见四级指导16页。 3、二进制数转换成其它数据类型

3-1二进制转八进制: 从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足, 就是一个相应八进制数的表示。 010110.001100B=26.14Q 八进制转二进制反之则可。 3-2二进制转十进制: 见1 3-3二进制转十六进制: 从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示, 不足四位的用0补足,就是一个相应十六进制数的表示。 00100110.00010100B=26.14H 十进制转各进制 要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。 一、十进制转二进制 如:55转为二进制 2|55 27――1个位 13――1第二位 6――1第三位 3――0第四位 1――1第五位 最后被除数1为第七位,即得110111 二、十进制转八进制

各种进制之间的转换方法

各种进制之间的转换方法 ⑴二进制B转换成八进制Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位,每3位二进制数为一组,不足3位的,小数部分在低位补0,整数部分在高位补0,然后用1位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3。 例:◆二进制数转换成八进制数: = 110 110 . 101 100B ↓↓ ↓ ↓ 6 6 . 5 4 = ◆八进制数转换成二进制数: 3 6 . 2 4Q ↓ ↓ ↓ ↓ 011 110 . 010 100 = ◆ 低位,每4位二进制数为一组,不足4位的,小数部分在低位补0,整数部分在高位补0,然后用1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4。 例:◆二进制数转换成十六进制数: .100111B = 1011 0101 1010 . 1001 1100B ↓ ↓ ↓ ↓ ↓ B 5 A . 9 C = 5A ◆十六进制数转换成二进制数: = A B . F EH ↓ ↓ ↓ ↓ 1010 1011. 1111 1110 = .1111111B 先把八进制数Q转换成二进制数B,再转换成十六进制数H。 例:◆八进制数转换成十六进制数: = 111 100 000 010 . 100 101B = .100101B = 1111 0000 0010 . 1001 0100B = F 0 2 . 9 4H = ◆十六进制数转换成八进制数: = 0001 1011 . 1110B = = 011 011 . 111B = 3 3 . 7Q = ⑷二进制数B转换成十进制数D:利用二进制数B按权展开成多项式和的表达式,取基数为2,逐项相加,其和就是相应的十进制数。

进制之间的转换

--进制之间的转换-- 介绍:进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 --常见的几种进制 二进制(B)十进制(D)十六进制(H)八进制(O) 1.二进制 二进制有两个特点:它由两个数码0、1组成,二进制的规律是逢二进一。 -转换。 a.将二进制转换为十进制。 例子:将二进制数10111.1011转换为十进制 解析: 小数点前 1 0 1 1 ------ 转换为十进制 1×23 0×22 1×21 1×20 ------ 8+0+2+1=11 小数点后1 0 1 1 ------ 转换为十进制 1×2-1 0×2-21×2-31×2-4 ---- 0.5+0+0.125+0.0625=0.6875 则,二进制1011.1011转换为十进制数为 11+0.6875=11.6875. (1011.1011) B =(11.6875) D b.将二进制转换为八进制。 例子:将二进制数10111.1011转换为八进制 解析: (由小数点开始,向两边每3个分为一组) 001 011 .101 100 (按照二进制转十进制的算法,算出每三个所对应的十进制数) 1 3 . 5 4 则,(1011.1011) B =(13.54) O c.将二进制转换为十六进制。 例子:将二进制数10111.1011转换为八进制解析:

各种进制之间的转换(可编辑修改word版)

一:十进制数转换成二进制数。 随便拿出一个十进制数“39”,(假如你今天买书用了39 元)先来把这个39 转换成2 进制数。 商余数步数39/2= 19 1 第一步 19/2= 9 1 (这里的19 是第一步运算结果的商)第二步 9/2= 4 1 (这里的9 是第二步运算结果的商)第三步 4/2= 2 0 (这里的4 是第三步运算结果的商)第四步 2/2= 1 0 (这里的2 是第四步运算结果的商)第五步 1/2= 0 1 (这里的1 是第五步运算结果的商)第六步 那么十进制数39 转换成2 进制数就是100111. 既39(10)=100111(2) 解析一:1. 当要求把一个10 进制数转换成2 进制数的时候,就用那个数一直除以2 得到商和余数。 2. 用上一步运算结果的商在来除以2,再来得到商和余数。 3. 就这样,一直用上一步的商来除以2,得到商和余数!那么什么时候停止呢? 4. 请看上述运算图,第六步的运算过程是用1 除以2.得到的商是0,余数是1. 那么请你记住,记好了啊共2 点。A: 当运算到商为“0”的时候,就不用运算了。B:1/2 的商为“0”余数为“1”。这个你要死记住,答案并不是0.5!答案就是商为“0”余数为“1”。你不用去思考为什么,记好了就行了! 5. 在上述图中你会清晰的看到每一步运算结果的余数,你倒着把它们写下来就是“100111”了。那么这个就是结果了。 6. 在上述图中符号“/”代表“除以”。 二:十进制数转换成八进制数。 随便拿出一个十进制数“358”,(假如你今天买彩票中了358 元)。358 是我们现实生活中所用10 进制表达出来的一个数值,转换成八进制数十多少?

各种进制之间的转换方法.docx

各种进制之间的转换方法 ⑴二进制 B 转换成八进制 Q:以小数点为分界线,整数部分从低位到高位,小数部分从高位到低位, 每 3 位二进制数为一组,不足 3 位的,小数部分在低位补0,整数部分在高位补0,然后用 1 位八进制的数字来表示,采用八进制数书写的二进制数,位数减少到原来的1/3 。 例:◆二进制数转换成八进制数:= 110 110 .101 100B ↓↓↓↓ 6 6. 5 4 = ◆八进制数转换成二进制数: 36. 2 4Q ↓↓↓↓ 011 110.010 100 = ◆八进制数和二进制数对应关系表 八进制 Q01234567 二进制 B000001010011100101110111 ⑵二进制数 B 转换成十六进制数 H:以小数点为分界线,整数部分从低位到高位,小数部分从高位到 低位,每 4 位二进制数为一组,不足 4 位的,小数部分在低位补 0,整数部分在高位补 0,然后用 1位十六进制的数字来表示,采用十六进制数书写的二进制数,位数可以减少到原来的1/4 。 例:◆二进制数转换成十六进制数: . 100111B = 1011 0101 1010.1001 1100B ↓↓↓↓↓ B5A.9 C = 5A ◆十六进制数转换成二进制数: = A B. F EH ↓↓↓↓ 1010 1011. 1111 1110 =. 1111111B ◆十六进制数、十进制数和二进制数对应关系表 十六进制 H0123456789A B C D E F 十进制 D0123456789101112131415二进制 B0000000100100011010001010110011110001001101010111100110111101111⑶八进制数 Q转换成十六进制数H:八进制数 Q和十六进制数 H 的转换要通过二进制数 B 来实现,即 先把八进制数Q转换成二进制数B,再转换成十六进制数H。 例:◆八进制数转换成十六进制数: = 111 100 000 010. 100101B =. 100101B = 1111 0000 0010.1001 0100B = F 02.9 4H = ◆十六进制数转换成八进制数: =0001 1011 . 1110B = = 011 011.111B = 33.7Q = ⑷二进制数 B 转换成十进制数D:利用二进制数 B 按权展开成多项式和的表达式,取基数为2,逐项 相加,其和就是相应的十进制数。

常见的进制转换方法

一:简述: 进位计数制:是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。 (1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。 (2)基:数制所使用的数码个数称为”基”。 (3)权:某数制每一位所具有的值称为”权”。 二:进制转换的理论 1、二进制数、十六进制数转换为十进制数:用按权展开法 把一个任意R进制数a n a n-1 ...a1a0 . a-1a-2...a-m 转换成十进制数,其十进制数值为每一位数字与其位权之积的和。 a n×R n+ a n-1×R n-1+…+ a1×R 1+ a0×R0+ a-1×R-1+ a-2×R-2 + …+ a-m×R-m 2、十进制转化成R进制 十进制数轮换成R进制数要分两个部分: 整数部分:除R取余数,直到商为0,得到的余数即为二进数各位的数码,余数从右到左排列(反序排列)。 小数部分:乘R取整数,得到的整数即为二进数各位的数码,整数从左到右排列(顺序排列)。 3、十六进制转化成二进制 每一位十六进制数对应二进制的四位,逐位展开。 4、二进制转化成十六进制 将二进制数从小数点开始分别向左(对二进制整数)或向右(对二进制小数)每四位组成一组,不足四位补零。 三、具体实现 1、二进制转换成十进制 任何一个二进制数的值都用它的按位权展开式表示。 例如:将二进制数(10101.11)2转换成十进制数。 (10101.11)2=1*24+0*23+1*22+0*21+1*20+1*2-1+1*2-2 =24+22+20+2-1+2-2=(21.75)10 2、十进制整理转换成二进制 将十进制整数转换成二进制整数采用“除2取倒余法”。 即将十进制整数除以2,得到一个商和一个余数;再将商除以2,又得到一个商和一个余数; 以此类推,直到商等于零为止。 每次得到的余数的倒排列,就是对应二进制数的各位数。 于是,结果是余数的倒排列,即为: (37)10=(a5a4a3a2a1a0)2=(100101)2 3、十进制小数转换成二进制小数 十进制小数转换成二进制小数是用“乘2取整法”。即用2逐次去乘十进制小数, 将每次得到的积的整数部分按各自出现的先后顺序依次排列,就得到相对应的二进制小数。 将十进制小数0.375转换成二进制小数,其过程如下:

c语言 十六进制和十进制间的转换

1.将十六进制转换为十进制. #include #include int main(void){ int convert(int,char *); int i,j; char m[20]; printf("请输入你要转换的数:"); scanf("%s",m); i=0; while(*(m+i)!='\0'){ i++; } j=convert(--i,m); printf("转换为十进制是:%d\n",j); return 0; } int convert(int a,char *p){ int i,j,sum; sum=0; for(i=0;i<=a;i++){ if(*(p+i)<='f'&&*(p+i)>='a') j=(int)(*(p+i))-87; else if(*(p+i)<='F'&&*(p+i)>='A') j=(int)(*(p+i))-55; else j=(int)(*(p+i))-48; sum=sum+pow(16,a-i)*j; } return (sum); }

2.将十进制转换为十六进制. #include int main(void) { int i,a[20],m,m_old; char c; i=0; printf("请输入你要转换的数:"); scanf("%d",&m); m_old=m; while(m!=0){ a[i]=m%16; m/=16; i++; } i--; /*for(;i>=0;i--){ printf("%d ",*(a+i)); }*/ printf("%d转换为十六进制是:",m_old); for(;i>=0;i--){ /*switch(a[i]){ case(10):printf("A");break; case(11):printf("B");break; case(12):printf("C");break; case(13):printf("D");break; case(14):printf("E");break; case(15):printf("F");break; default: printf("%d",a[i]);

进制之间转换(含小数部分)

二、八、十、十六之间的转换 1、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000

(2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位)

python各进制之间转换

python各进制之间转换 # global definition # base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)] # 二进制to 十进制: int(str,n=10) def bin2dec(string_num): return str(int(string_num, 2)) # 十六进制to 十进制 def hex2dec(string_num): return str(int(string_num.upper(), 16)) # 十进制to 二进制: bin() def dec2bin(string_num): num = int(string_num) mid = [] while True: if num == 0: break num,rem = divmod(num, 2) mid.append(base[rem]) return ''.join([str(x) for x in mid[::-1]]) # 十进制to 八进制: oct()

# 十进制to 十六进制: hex() def dec2hex(string_num): num = int(string_num) mid = [] while True: if num == 0: break num,rem = divmod(num, 16) mid.append(base[rem]) return ''.join([str(x) for x in mid[::-1]]) # 十六进制to 二进制: bin(int(str,16)) def hex2bin(string_num): return dec2bin(hex2dec(string_num.upper())) # 二进制to 十六进制: hex(int(str,2)) def bin2hex(string_num): return dec2hex(bin2dec(string_num))

进制数之间的转换方法

一般来说,对于任意大于1的整数n,存在n进制,其特点是基数为n,逢n进一。其中最常用的是二进制、八进制和十六进制。 任意进制的数字对应的十进制值为: Kn×Bn + Kn-1×Bn-1 + …… + K1×B1 + K0×B0 + K-1×B-1 + K-2×B-2 …… + K-m×B-m 上式中,B称为数字系统的基数,Bn至B0称为数字Kn至K0的权值。 1.基本知识 十进制 基数为10,逢10进1。在十进制中,一共使用10个不同的数字符号,这些符号处于不同位置时,其权值各不相同。 二进制 基数为2,逢2进1。在二进制中,使用0和1两种符号。 八进制 基数为8,逢8进1。八进制使用8种不同的符号,它们与二进制的转换关系为:0:000 1:001 2:010 3:011 4:100 5:101 6:110 7:111 十六进制 基数为16,逢16进1。十六进制使用16种不同的符号,它们与二进制的转换关系为: 0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:0111 8:1000 9:1001 A:1010 B:1011 C:1100 D:1101 E:1110 F:1111 二进制数的运算 算术运算:加法 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10(向高位进1) 算术运算:减法 0 ? 0 = 0 0 ? 1 = 1(向高位借1)1 ? 0 = 1 1 - 1 = 0 逻辑运算:或(∨) 0 ∨0 = 0 0 ∨1 = 1 1 ∨0 = 1 1 ∨1 = 1 逻辑运算:与(∧) 0 ∧0 = 0 0 ∧1 = 0 1 ∧0 = 0 1 ∧1 = 1 逻辑运算:取反 0取反为1 1取反为0 注意:算术运算会发生进位、借位,逻辑运算则按位独立进行,不发生位与位之间的关系,其中,0表示逻辑假,1表示逻辑真。

进制转换方法总结

信息的编码 再问学生计算机存储信息是不是都采用了二进制数二进制也存在缺点,二进制都用0和1, 而且位数太多, 不易理解, 也易出错。为描述方便常用八、十进制,十六进制数表示二进制数 在微机中,一般在数字的后面,用特定字母表示该数的进制。 十进制:日常生活中最常见的是十进制数,用十个不同的符号来表示:0、1、2、3、4、5、6、7、8、9。 基为:10 运算规则:逢十进一,借一当十 在十进制数的后面加大写字母D以示区别。 二进制:二进制数只有两个代码“0”和“1”,所有的数据都由它们的组合来实现。 基为:2 运算规则:“逢二进一,借一当二”的原则。 在八进制数据后加英文字母“B” 八进制:使用的符号:0、1、2、3、4、5、6、7; 运算规则:逢八进一; 基为:8 在八进制数据后加英文字母“O”, 十六进制:使用的符号:采用0~9和A、B、C、D、E、F六个英文字母一起共十六个代码。 运算规则:逢十六进一

基为:16 在十六进制数据后加英文字母“H”以示分别。 那么二进制数与八进制、十进制,十六进制数是怎么转换的呢 3、协作提高:用讲解法对二进制数与十进制数、十六进制数之间相互的转换的原理及方法(将二进制数字表示的位权值与十进制数字表示的位权值加以对比),叫几位学生到黑板上来做,其它同学在下面草稿纸上做。观察在黑板上做的同学的对错情况,要知道错,错在那里。 由N进制数转换成十进制数的基本做法是,把N进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 各数制的权 如:十进制中,各位的权为10n-1 二进制中,各位的权为2n-1 十六进制中,各位的权为16n-1 八进制中,各位的权为8n-1 1)、二进制转换为十进制 各数制中整数部分不同位的权为“基的n-1次方(n为数值所在的位数,n的最小值取1)”,小数部分不同位的权值为“基的-n次方,从左向右,每移一位,幂次减1”。 二进制数的基数为2 例()2=()D

进制进制进制十六进制之间转换详解

二进制、八进制、十进制、十六进制之间转换 一、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000

(2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位)

各种进制转换方法

各种进制转换方法 一般计数都采用进位计数,其特点是: (1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。 (2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。在计算机中:D7D 6D5D4D3D2D1D0只有两种0和18421 二)、数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。有四进制 十进制:有10个基数:0~~9,逢十进一 二进制:有2个基数:0~~1,逢二进一 八进制:有8个基数:0~~7,逢八进一 十六进制:有16个基数:0~~9,A,B,C,D,E,F(A=10,B=11,C=12,D =13,E=14,F=15),逢十六进一 1、数的进位记数法 N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0 2、十进制数与P进制数之间的转换 ①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。将(30)10转换成二进制数 2|30….0----最右位

215 (1) 27 (1) 23 (1) 1….1----最左位 ∴(30)10=(11110)2 将(30)10转换成八、十六进制数 8|30……6------最右位 3------最左位 ∴(30)10=(36)8 16|30…14(E)----最右位 1----最左位 ∴(30)10=(1E)16 3、将P进制数转换为十进制数 把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。 把二进制11110转换为十进制 (11110)2=1*24+1*23+1*22+1*21+0*20= =16+8+4+2+0 =(30)10

进制之间的相互转换

十进制转换为r进制的方法(看例子很容易理解,亲,加油~) 将十进制数转化为r进制数时,要将数的整数部分和小数部分分别进行转 换,分别按除r取余数和乘r取整数两种不同的方法来完成。 如十进制转化为二进制的方法是:对整数部分,用2去除,取其余数为转换后的二进制整数数字,直到商为0结束,且注意先得到的余数为所求结果的地位;对小数部分,用2去乘,取乘机的整数部分为转换后的二进制小数部分,注意先得到的整数为二进制小树的高位 如101.1 对整数部分 101/2=50 余1 50/2=25 余 0 25/2=12 余1 12/2=6 余0 6/2=3 余0 3/2=1 余1 1/2=0 余1 先得到的余数为结果的低位,所以整数部分的结果为 1100101 对小数部分 01*2=0.2 取整数0 0.2*2=0.4 0 0.4*2=0.8 0 0.8*2=1.6 1 0.6*2=1.2 1 0.2*2=0.4 0 0.4*2=0.8 0 0.8*2=1.6 1 先得到的整数为小数的高位,即为0.00011001 所以结果为1100101.000110 即101.1(十进制)=1100101.00011001(二进制) 同样,将十进制转化为八进制或十六进制时,整数部分用除以8 或16取余数处理,小数部分用乘8活16取整来处理。 266(十进制)=10A(十六进制) 266/16=16 余10(A) 16/16=1 余0 1/16=0 余1 所以266(十进制)=10A(十六进制) 0.8125(十进制)=0.64(八进制) 0.8125*8=6.5 取整数6 0.5*8=4.0 取整数4 所以0.8125(十进制)=0.64(八进制)

数制之间的转换教案

数制之间的转换 教学目标:掌握二、八、十、十六进制数之间的相互转换 教学重点:二、十、十六进制数之间的相互转换 教学难点:将十进制数分别转化为二、八、十六进制数 教学方法:讲练结合 教具:黑板、粉笔 教学过程: 一、复习导入 (1)基数 数制所使用的基本数码的个数。 十进制数的基数为10 二进制数的基数为2 八进制数的基数为8 十六进制数的基数为16 (2)权 每位数码“1”所代表的实际数值。 权的大小是以基数为底,以数位的序号为指数的整数次幂。 (3)按权展开式 每位数码乘以每位权之和 305.56的按权展开式: 3×102+0×101+5×100+5×10-1+6×10-2 101.01B 的按权展开式: 1×22+0×21+1×20+0×2-1+1×2-2 二、新授知识 (1)在程序设计中,为了区分不同进制数,常在数字后加一英文字母做后缀以示区别。 十进制数:在数字后加字母D 或不加字母,如105D 或105。 二进制数:在数字后面加字母B ,如101B 。 八进制数:在数字后面加字母Q ,如163Q 。 十六进制数:在数字后加字母H ,如16EH 。 305.56 102 101 100 10-1 10-2 101.01B 22 21 20 2-1 2-2

(2)将二、八、十六进制数转换为十进制数的方法: 计算按权展开式 例1. 将二进制数101.01转化为十进制数。 解:101.01B=1×22+0×21+1×20+0×2-1+1×2-2 =5.25 例2. 将八进制数32转换为十进制数。 解:32Q=3×81+2×80=26 (3)将十进制数转换为二、八、十六进制数的方法 整数部分,除以基数,取余,逆序排列; 小数部分,乘以基数,取整,顺序排列。 例3. 将十进制数26.25转换为二进制数。 ∴26=11010B ∴ 0.25=0.01B ∴ 26.25=11010.01B 例4.将十进制数26.25转化为八进制数。 ∴26=32Q ∴ 0.25=0.2Q ∴26.25=32.2Q 课堂练习: 将十进制数26.25转换成十六进制数 答案: 26 2 余数 13 0 2 6 1 2 3 0 2 1 1 1 0 2 0.25 2 0.5 整数 × × 2 1.0 1 0.0 26 8 3 2 8 0 3 0.25 × 8 2.00 2 0.00 26 16 1 10=AH 0 1 0.25 × 16 4.00 4 0.00

各进制转换(含小数)

提示:各类进制在实际中表示 十进制:D(Decimal) 二进制:B(Binary) 八进制:O(Octal) 十六进制:H(Hexadecimal) 如:(4B1)16又可写为4B1H (12345)8又可以写为12345O (10011)2又可以写为10011B 1、非十进制与十进制的转换 1.1、基本原则: 按权展开法,即把各数位乘权的i次方后相加 1.2、实例: 例1:二进制与十进制的转换,带小数部分 01011010.01B=0×2^7+1×2^6+0×2^5+1×2^4+1×2^3+0×2^2 +1×2^1+0× 2^0+0×2^-1+1×2^-2 = 90.25 例2:八进制与十进制的转换,如有小数部分,对应乘相应8的-i次方【字母O,表示八进制】 245O = 3x8^2+4x8^1+5x8^0 = 229 例3:十六进制与十进制的转换,如有小数部分,对应乘相应16的-i次方【字母H,表示十六进制】 F2DH = 15x16^2+2x16^1+13x16^0 = 3885

2、十进制与非十进制的转换 2.1、基本原则: 原则1:整数部分与小数部分分别转换; 原则2:整数部分采用除基数(转换为2进制则每次除2,转换为8进制每次除8,以此类推)取余法,直到商为0,而余数作为转换的结果,第一次除后的余数为最低为,最后一次的余数为最高位; 原则3:小数部分采用乘基数(转换为2进制则每次乘2,转换为8进制每次乘8,以此类推)取整法,直至乘积为整数或达到控制精度。 2.2、实例: 例1:将十进制数725.625分别转换为十六进制、八进制、二进制 转换为二进制,整数部分每次除2,小数部分每次乘以2: 整数部分:小数部分: 2|725…………..余数=1 最低位 0.625 2|362…………..余数=0 × 2 2|181…………..余数=1 1.250…..整数=1 小数部分最高位,靠近点的那位 2|90……..……余数=0 0.250 2|45…………..余数=1 × 2 2|22…………..余数=0 0.500…..整数=0 2|11…………..余数=1 × 2

进制转换规则

四、进制的转换 目标:熟悉各进制之间的转换规则,计算机中级考证也会考到。 要求做到给出一个十进制,能够做到各进制之间互相转换。 在编程中,我们的变量通常用10进制表示;不过,在计算机内存中,数据是以二进制的形式存在的,所以我们作为一个程序员应该要熟悉的掌握各进制之间的转换,本章不讲补码和反码的知识,有需要了解的自行百度学习。 计算机分二进制、八进制、十进制、十六进制 二进制:采用0和1表示//规则:逢二进一如:1010 八进制:采用0~7这八个数表示//规则:逢八进一,在程序中表示八进制要在这个数的前面加个0 如:055 十进制:采用0~9这10个数表示//规则:逢九进一如:95 十六进制:用16个阿拉伯数字表示,但我们只有0~9这十个数字,所以我们用A、B、C、D、E、F这五个数字表示10、11、12、13、14、15,字母不区分大小写。//规则:逢十六进一,在程序中表示16进制要在这个数的前方加上0x 如:0x6e 10进制转2进制: 例子:将十进制‘100 ’转成二进制 最后得出的二进制是:1100100 //将得出的余数倒过来写 转换规则:将10进制数除以2,得出的商继续除以2,直到商不够2为止,取余数,倒写,就是转换后的2进制数

例子:将二进制‘100’转换成十进制 第一步 1 0 0 第二步 2 1 0//二进制对应的下标,自右向左0开始 第三步1*2^2+0*2^1+0*2^0 = 4+0+0 = 4//2的0次方为1 最后得出的十进制是:4 转换规则:将二进制自右向左加上下标,0~n(n为二进制的位数减1),然后用二进制第1位的值*2^0+二进制第2位的值*2^1+二进制第n位的值+2^(n-1),最后相加的和就是计算出的十进制//二进制的位数是自右向左数的 10进制转8进制: 例子:将十进制‘100’转成八进制 最后得出的八进制是:144 //将得出的余数倒写 转换规则:将10进制数除以8,得出的商继续除以8,直到商不够8为止,取余数,倒写,就是转换后的8进制数 8进制转10进制: 例子:将八进制‘144’转成十进制 第一步 1 4 4 第二步 2 1 0//八进制对应的下标,自右向左0开始 第三步1*8^2+4*8^1+4*8^0 = 64 + 32 +4 = 100 最后得出的十进制是:100 转换规则:将八进制自右向左加上‘下标’,0~n(n为八进制的位数减1),然后用八进制第1位的值*8^0+八进制第2位的值*8^1+八进制第n位的值+8^(n-1),最后相加的和就是计算出的十进制//八进制的位数是自右向左数的

相关文档
最新文档