16进制转8进制
- 格式:docx
- 大小:12.22 KB
- 文档页数:2
二进制八进制十进制十六进制之间的进制转换详情可参考百度百科:进制转换这个词条【主要搞懂1和2两条,其他的进制之间的转化就迎刃而解,很好懂了】1. 十进制-> 二进制:将这个十进制数连续除以2的过程,第一步除以2,得到商和余数,将商再继续除以2,得到又一个商和余数,直到商为0。
最后将所有余数倒序排列,得到的数就是转换成二进制的结果。
2. 二进制-> 十进制:二进制数第1位的权值是2的0次方,第2位的权值是2的1次方,第3位的权值是2的2次方。
(例如1258这个十进制数,实际上代表的是:1x1000+2x100+5x10+8x1=1258)那么1011这个二进制数,实际上代表的是:1x8+0x4+1x2+1x1=11(十进制数11)。
(这里的8就是2的3次方,4就是2的2次方,2就是2的1次方,1就是2的0次方)3. 十进制-> 八进制:十进制数转换成八进制的方法,和转换为二进制的方法类似,唯一变化:除数由2变成8。
4. 八进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成8,第1位表示8的0次方,第二位表示8的一次方,第三位表示8的2次方,第四位表示8的3次方。
例如1314这个八进制数,十进制数就是1x512+3x64+1x8+4x1=716(十进制)5. 十进制-> 十六进制10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
十六进制是0123456789ABCDEF这十六个字符表示。
那么单独一个A就是10,单独一个B就是11,CDEF,就分表表示12,13,14,15。
而10这个十六进制数,实际就是十进制中的16。
6. 十六进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成16,第1位表示16的0次方,第二位表示16的一次方,第三位表示16的2次方,第四位表示16的3次方。
7. 二进制<--->八进制,之间的相互转换,更简单一些,因为8本身是2的三次方。
十进制转二进制: 用 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 故二进制为 100101110 二进制转十进制 从最后一位开始算,依次列为第 0、1、2...位 第 n 位的数(0 或 1)乘以 2 的 n 次方 得到的结果相加就是答案 例如:01101011.转十进制: 第 0 位:1 乘 2 的 0 次方=1 1 乘 2 的 1 次方=2 0 乘 2 的 2 次方=0 1 乘 2 的 3 次方=8 0 乘 2 的 4 次方=0 1 乘 2 的 5 次方=32 1 乘 2 的 6 次方=64 0 乘 2 的 7 次方=0 然后:1+2+0 +8+0+32+64+0=107.二进制 01101011=十进制 107. .十进制转二进制(整数及小数部分): 十进制转二进制(整数及小数部分):1、把该十进制数,用二因式分解,取余。
、把该十进制数,用二因式分解,取余。
以 235 为例,转为二进制 235 除以 2 得 117,余 1 117 除以 2 得 58,余 1 58 除以 2 得 29,余 0 29 除以 2 得 14,余 114 除以 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)一:简述: (1)二:进制转换的理论 (4)一、二进制数、八进制、十六进制数转换为十进制数:用按权展开法 (4)2:十进制转化成R进制(除R取余法) (5)3:十六进制转化成二进制 (5)4:二进制转化成十六进制 (5)5:八进制转化成二进制 (6)6:二进制转化为八进制 (6)三:具体实现 (6)1:二进制转换成十进制 (6)2:十进制整理转换成二进制 (6)3:十进制小数转换成二进制小数 (7)4:十六进制转为二进制 (7)5:二进制数转为十六进制 (8)一:简述:一:简述:进位计数制:是人们利用符号来计数的方式。
一种进位计数制包括一组数码符号和两个大体因素。
(二进制B,Binary;八进制O原是字母O,Octal,避免与数字0混淆改用Q;十进制D,Decimal;十六进制H,Hexadecimal。
)(1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为数码。
(2)基:数制所利用的数码个数称为基。
(3)权:某数制每一名所具有的值称为权。
表格1 BCD码(用四位权为8421—<即2^*次方>的二进制数来表示等值的一名十进制数)表格2制数的对应关系二:进制转换的理论一、二进制数、八进制、十六进制数转换为十进制数:用按权展开法把一个任意R进制数an an-1 ...a1a0 . a-1 a-2...a-m转换成十进制数,其十进制数值为每一名数字与其位权之积的和。
an×R n + an-1×R n-1 +…+ a1×R 1 + a0×R 0 + a-1 ×R-1+ a-2×R-2+ …+ a-m×R-m2:十进制转化成R进制(除R取余法)十进制数轮换成R进制数要分两个部份:①整数部份:除R取余数,直到商为0,取得的余数即为二进数列位的数码,余数从右到左排列(反序排列)。
②小数部份:乘R取整数,取得的整数即为二进数列位的数码,整数从左到右排列(顺序排列)。
第六章二进制、八进制、十六进制6.1 为什么需要八进制和十六进制?6.2 二、八、十六进制数转换到十进制数6.2.1 二进制数转换为十进制数6.2.2 八进制数转换为十进制数6.2.3 八进制数的表达方法6.2.4 八进制数在转义符中的使用6.2.5 十六进制数转换成十进制数6.2.6 十六进制数的表达方法6.2.7 十六进制数在转义符中的使用6.3 十进制数转换到二、八、十六进制数6.3.1 10进制数转换为2进制数6.3.2 10进制数转换为8、16进制数6.4 二、十六进制数互相转换6.5 原码、反码、补码6.6 通过调试查看变量的值6.7 本章小结这是一节“前不着村后不着店”的课。
不同进制之间的转换纯粹是数学上的计算。
不过,你不必担心会有么复杂,无非是乘或除的计算。
生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制,其实起源于人有10个指头。
如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。
生活中还有:七进制,比如星期。
十六进制,比如小时或“一打”,六十进制,比如分钟或角度……(该版课程的内容更新及订正均已停止)旧版课程打包下载----------------------------------[想看涵盖“面向对象”、“图形编程”、“泛型编程”……的“最新2008年版白话C++”课程,请点击!] (另有: 博客版)6.1 为什么需要八进制和十六进制?编程中,我们常用的还是10进制……必竟C/C++是高级语言。
比如:int a = 100,b = 99;不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。
比如int 类型占用4个字节,32位。
比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100面对这么长的数进行思考或操作,没有人会喜欢。
进制转换方法一、十进制转换为2、8、16等进制方法10进制转换成其他的进制都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。
具体例题如下:(1)10---2:把十进制的20转换成二进制20/2=10..........余数为010/2=5...........余数为05/2=2............余数为12/2=1............余数为01/2=0............余数为1倒取余数则20换成二进制后是10100(2)10---8:把十进制20转换成八进制20/8=2...........余数为42/8=0............余数为2倒取余数则20转换成八进制后是24(3)10---16:把十进制20转换成十六进制20/16=1..........余数为41/16=0...........余数为1倒取余数则20转换成十六进制后是14二、将二、八、十六等进制转换十进制的方法(1)2---10:把二进制数1101转换成十进制1101=1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=13 (从尾部倒推,每位数乘以相应的权数,再相加即可)则1101变成十进制后是13(2)8---10:把八进制数1340转换成十进制1340=0*8的0次方+4*8的1次方+3*8的2次方+1*8的3次方=736 (从尾部倒推,每位数乘以相应的权数,再相加即可)则1340变成十进制后是736(3)16---10:把十六进制数3A4F转换成十进制3A4F=15*16的0次方+4*16的1次方+10*16的2次方+3*16的3次方=14927(从尾部倒推,每位数乘以相应的权数,再相加即可)则3A4F变成十进制后是14927(注意:十六进制中的A、B、C、D、E、F对应分别指:10、11、12、13、14、15)三、2、8、16进制之间的相互转换的方法(例如:将2进制的数转换成16进制,方法:先将2进制转换成10进制的数,再转换成16进制)例如:将二进制的10100转换成十六进制方法:先将二进制的10100转换成十进制,再转换成十六进制10100=0*2的0次方+0*2的1次方+1*2的2次方+0*2的3次方+1*2的4次方=20再将十进制的20转换成十六进制:20/16=1..........余数为41/16=0...........余数为1则将二进制的10100转换成十六进制后是14。
重要的2、8、10、16进制互相转换方法重要的2、8、10、16进制互转换方法最近在研究C语言,因为要用到各进制间转换,所以收集了一些资料…这是一节“前不着村后不着店”的课。
不同进制之间的转换纯粹是数学上的计算。
不过,你不必担心会有么复杂,无非是乘或除的计算。
生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制,其实起源于人有10个指头。
如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。
生活中还有:七进制,比如星期。
十六进制,比如小时或“一打”,六十进制,比如分钟或角度……我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用‘\77′来表示’?'。
由于是八进制,所以本应写成‘\077′,但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。
事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。
6.2.5 十六进制数转换成十进制数2进制,用两个阿拉伯数字:0、1;8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10进制,用十个阿拉伯数字:0到9;16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。
字母不区分大小写。
十六进制数的第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(别忘了,在上面的计算中,A表示10,而F表示15)现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
二进制、八进制、十六进制相互转换
B→H 16进制就有16个数,0~15,用二进制表示15的方法就是1111,故16进制用2进制可以表现成0000~1111,也就是每四个为一位。
例:1、( 1 1 1 1 0 1)B=(3D)H 0 0 1 1| 1 1 0 1
2+1=3 8+4+1=13=D
2、(0001 0110.0101 1011)B=(16.5B)H
H→B 二进制每四位所表示的数的最大值对应16进制的15,即16进制每一位上最大值,故将16进制上每一位分别对应二进制上四位进行转换,即得所求:例:(2AF5)H=(0010101011110101)B 5 F A 2
0101 1111 1010 0010
B→O 以小数点为界分别向左右3数字为一组进行分组,每组分别转化成二进制数,最后合并在一起,并把首0去掉(尾0不可以去)。
例:(1101001)B=(151)O 001 101 001
1 5 1
O→B 八进制数一位一位地取出,然后把一位换算成 3位(0-000 1-001 2-010 3-011 4-100 5-101 6-110 7-111)依次排列就可以了。
例:(0371)O =(011 111 001)B 3 7 1
011 111 001
总结:B→H(O),把一个二制数以小数点为界分别向左右每4(或3)个数字为一组进行分组,每组分别转化成16或8进制数,最后合并在一起;H(O)→B,把一个16或8进制数以小数点为界分别向左右,每个数字分别转化成二进制数,最后合并在一起。
◆十进制转二进制:二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。
它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前计算机系统使用的基本上是二进制系统。
用2辗转相除至结果为1将余数和最后的1从下向上倒序写就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余0故二进制为100101110◆二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如:01101011.转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘2的6次方=640乘2的7次方=0然后:1+2+0+8+0+32+64+0=107.二进制01101011=十进制107.好了,现在对二进制和十进制之间的换算有了初步的了解了吧,下面,我们就进一步深入了解二者之间的其他换算规律:二进制转十进制,十进制转二进制的算法一、二进制数转换成十进制数由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
这种做法称为"按权相加"法。
二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
0,16,2进制的互相转换所谓16进制,就是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个数字组成。
逢16进⼀位,下⾯就讲讲在没有任何⼯具的情况下如何将⼀10进制转化为16进制:1000除以16得62余8,那么最低位为8,再将62除以16得3余14,那么倒数第2为E(14对于16进制来说是E),3⽐16⼩了,所以不⽤继续除了,总的就是3E8,为1000的16进制数。
想要将16进制的数转化为10进制,只需将上⾯的步骤反过来做就可以了。
不⽤我多说吧!2进制仅由0、1两个数字组成,逢1进⼀。
要将⼀10进制化为2进制,介绍⼀个简单的⽅法,先将10进制的数化为16进制,再化为2进制,举个例⼦:515对应16进制为203H,将203转为2进制则为0010(2) 0000(0) 0011(3),⼀个位数对2进制来说是4个字符。
0H就是0000、1H就是0001、……、0EH就是1110、OFH为1111,⼤家可⾃⼰推⼀下。
总之⼤家⼀定要熟练掌握各个进制的互相转化,尤其是100以内10--16和16--10的互相转化要记住。
16-10H、32-20H、48-30H、64-40H、80-50H、96-60H、100-64H,255-FFH,65535-FF FFH,1677万-FF FF FFH,前为10进制,后有H的为16进制,这些能记住,以后修改就⽅便许多了。
⼆进制⼆进制是逢2进位的进位制,0、1是基本算符。
现代的电⼦计算机技术全部采⽤的是⼆进制,因为它只使⽤0、1两个数字符号,⾮常简单⽅便,易于⽤电⼦⽅式实现。
⼆进制四则运算规则 加法 0+0=0,0+1=1+0=1,1+1=10 减法 0-0=0,1-0=1,1-1=0,0-1=-1 乘法 0×0=0,0×1=1×0=0,1×1=1 除法 0÷1=0,1÷1=1⼀、什么是⼆进制 在现实⽣活和记数器中,如果表⽰数的“器件”只有两种状态,如电灯的“亮”与“灭”,开关的“开”与“关”。
2进制, 8进制, 10进制, 16进制,介绍及相互转换及快速转换的方法为什么要使用进制数数据在计算机中的表示,最终以二进制的形式存在,就是各种<黑客帝国>电影中那些0101010…的数字;我们操作计算机,实际就是使用程序和软件在计算机上各种读写数据,如果我们直接操作二进制的话,面对这么长的数进行思考或操作,没有人会喜欢。
C,C++语言没有提供在代码直接写二进制数的方法。
用16进制或8进制可以解决这个问题。
因为,进制越大,数的表达xx也就越短。
之所以使用16或8进制,而不其它的,诸如9或20进制.是因为2、8、16,分别是2的1次方、3次方、4次方。
这一点使得三种进制之间可以非常直接地互相转换;8进制或16进制既缩短了二进制数,还能保持了二进制数的表达特点。
转换还方便.进制的介绍进制:是计算机中数据的一种表示方法。
N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F表示.10进制先说我们最熟悉的10进制,就是用0~9的数表示,逢10进1 .16进制如果是16进制,它就是由0-9,A-F组成,与10进制的对应关系是:0-9对应0-9;A-F对应10-15;字母不区分大小写。
2进制和8进制2进制由0-1组成8进制由0-7组成进制的转换公式二进制转换十进制八进制转换十进制十六进制转换十进制如何快速的进行2进制,10进制,16进制的相互转换先记住二进制的8421首先我们来看一个二进制数:1111,它是多少呢?你可能还要这样计算:1×2º+1×2¹+1×2²+1×2³=1×1+1×2+1×4+1×8=15。
我们必须直接记住1111每一位的权值,并且是从高位往低位记,:8、4、2、1。
即,最高位的权值为2³=8,然后依次是2²=4,2¹=2,2º=1。