二进制 十进制 十六进制 只间的转换 那有想学

作者&投稿:崇威 (若有异议请与网页底部的电邮联系)
有没有基础一些的! 二进制/十进制/十六进制之间的转换学习资料!~


8进制C中基本不用(不说啦,但是方法一样)
2转10:乘以位权
例如:1101 1010
=1*2的7次方+1*2的6次方+0*2的5次方+1*2的4次方+1*2的3次方+0*2的2次方+1*2的1次方+1*2的0次方=算出的就是进制
10转2:除基取余法,从低位到低位
例如:87
87/2=43余1
43/2=21余1
21/2=10余1
10/2=5余0
5/2=2余1
2/2=1余0
1/2=0余1
87的2进制数=101 0111
2进制转16进制(8421),16进制为(0,1,。。。。。。A,C,B,D,E,F)A=10.......F=15
例如:0B1 1 1 0 1 1 0 1=0xed(0x表示16进制数)(0B表示2进制数)都是C语言的写法

8 4 2 1 8 4 2 1
8*1+4*1+2*1+0*1=15对应16进制的E(高位)
8*1+4*1+0*4+1*1=13对应16进制的D(低位)

数值系统(各进制转换原理和位运算基础) 编辑 本篇是我第一篇原创基础类文章我将讲到数值系统中的进制和各进制间的相互转换,如二进制转换为八进制十六进制,八进制十六进制转换为二进制,二进制八进制十六进制转换为十进制,十进制转换为二进制八进制十六进制等。另外我还会讲到计算机中负值的二进制表达法:补码表达法。并简单的引进下位运算。为了简洁,方便大家直接拿过来用,我就简单的介绍下,然后就直接写出各进制间的转换方法,大家直接参考转换公式就可以了,当然进制间的转换并非一种,当然我只举出最常用的。闲话少说——GO! 首先有必要讲一下各进制的基数,见下表:属性二进制八进制十进制十六进制基数281016最小位数0000最大位数179F上述的各种数值系统都是采用的数位记数法(positional notation),也就是说每个位数上都有一个不同的位值。如:1234(十进制),我们说1在千位上,2在百位上,3在十位上,4在个位上
每个位值都是基数的乘幂,其乘幂从右至左依次递增,从0开始,每次递增1。如下表:数位1234位名千位百位十位个位位值1000100101位值的乘幂(十进制的基数为10)10的3次幂10的2次幂10的1次幂10的0次幂依次类推万位的位值就是10的4次幂,十万位的位值就是10的5次幂,千万位的位值就是10的6次幂.....
对于二进制,八进制,十六进制也是以此类推,例如二进制10110:数位10110位名十六位八位四位二位一位位值108642位值的乘幂(二进制的基数为2)2的4次幂2的3次幂2的2次幂2的1次幂2的0次幂 八进制2046:数位2046位名五百一十二位六十四位八位一位位值5126482位值的乘幂(二进制的基数为2)8的3次幂8的2次幂8的1次幂8的0次幂 十六进制A6E2......(以此类推) 知道以上的知识后,我们便开始进制转换 首先从各进制转换为十进制开始要从各进制转换为十进制非常的简单,只要让每个数位*相应数位的位值,再把这些结果加起来,得到的便是十进制了举例:八进制3225转换为十进制数位3225位值5126482乘积3*5122*642*85*2位值的乘幂(二进制的基数为2)1536+128+16+10=1690那么八进制3225转换为十进制就是1690,二进制,十六进制转换成十进制的方法也以此类推,只不过因基值的不同乘的位值不一样罢了。 下面我们开始讲从二进制转换成八进制十六进制,然后再讲从八进制十六进制制转换为二进制。 二进制转换成八进制十六进制八进制十六进制数值系统和二进制之间有一个规律,就是八进和十六进制的基数8,16都是二进制的基数2的乘幂由此规律我们可以得出一种拆分转换的方法,我们可以将二进制拆分成每组3个(八进制)或4个(十六进制)的组如下:比如二进制为:1100011010001,我们将之转换成八进制就是:(分组从后往前开始,如果前面不足3位,或4位则用0填满)00110001101000114321原理其实我举个例子大家一看就懂的,二进制111转换成十进制为多少?翻翻上面的所说的各进制转换成十进制的方法我们知道为6。那么二进制1111转换成十进制为多少?对的,是15,也就是十六进制的F,记得上面我发第一张表吗?道理很简单,相信大家都很聪明的发现了一则规律。是的,因为八进制和十六进制的基数是二进制的乘幂,八进制8是二进制2的3次幂,按二进制转换成十进制的方法:每个数位*相应数位的位值得出的结果111永远不会超过7,1111永远不会超过15的规则那么二进制转换成八进制十六进制和二进制转换成十进制的方法一样行的通,只不过把二进制分为不同的3位一组,4位一组罢了。 说到这里我们该来说说从八进制十六进制制转换为二进制了上面我们知道了如何将二进制转换为八进制十六进制,做法是对二进制进行分组,然后写出每一组所对应的十进制数,拼起来就是八进制或十六进制了。这一操作其实逆过来便是从八进制十六进制转换为二进制的方法了。举例:十六进制A6E2转换成二进制便是:(不足的前面用0代替)A6E21010011011100010 OK,我们的进制转换讲完了,下面我再说下负数的二进制表达法:补码表达法我们依然举例来说明,如:Java代码 int intJyasa = 15; int intJyasa = 15;则i在计算机里的二进制表示方法为(假设计算机为32位):0000 0000 0000 0000 0000 0000 0000 1111 这时我们进行取反操作,得到intJyasa 的反码(0变成1,1变成0):1111 1111 1111 1111 1111 1111 1111 0000 为了得到intJyasa 的负值的表达方法(也就是补码),只需将intJyasa的反码加1,即:1111 1111 1111 1111 1111 1111 1111 0001 我们继续来探讨其原理,首先我们将intJyasa(15)和其补码(-15)相加,你会发现结果为0,如下:(二进制相加为逢二进一,六进制,八进制以此类推)0000 0000 0000 0000 0000 0000 0000 1111+1111 1111 1111 1111 1111 1111 1111 0001=0000 0000 0000 0000 0000 0000 0000 0000(注意最左边多出来的我们舍弃掉它) 我们得到了0,如果我们将一个数的反码加上该数,结果将全得到1,如:0000 0000 0000 0000 0000 0000 0000 1111+1111 1111 1111 1111 1111 1111 1111 0000=1111 1111 1111 1111 1111 1111 1111 1111 要得到全0的关键是用反码加1得到补码(为什么要得到0?15加-15是不是等于0呢?我们要去到负的必须想办法使它等于0),这就是为什么让intJyasa(15)反码加1的道理了,加1导致每位变为0并进1。进位一直左移,直到最左边的二进制位将它丢弃,最终得到结果0(因为计算机表达32位int型变量只能在内存里记录32位,多出会抛弃掉)呵呵,巧妙吧。你会发现设计计算机的人是多么的不可思议。为了推论正确性我们来模拟下计算机演算减法的原理如: Java代码 int intX,intY,intZ; intX = 0; intY = 15;intZ = 6; intX = intY - intZ; //实际上就等同于将IntZ的补码加上intY,如下: intX = intY + ( ~intZ + 1 ); int intX,intY,intZ;intX = 0; intY = 15;intZ = 6;intX = intY - intZ;//实际上就等同于将IntZ的补码加上intY,如下:intX = intY + ( ~intZ + 1 ); 不信你可以上机试试看,转换成机器码为intY :0000 0000 0000 0000 0000 0000 0000 1111+intZ反码:1111 1111 1111 1111 1111 1111 1111 1010=intZ :0000 0000 0000 0000 0000 0000 0000 1001一位一位的左移,直到最左边的被遗弃,你会发现结果真的等于9。相信大家已经看出来原理了,希望我的东西没白写,这是本人第一篇基础类原创文章,居然写了近3个小时,好累啊,都凌晨近4点了。 这里我引入了~(取反)运算符,该运算符属于位运算范畴,下篇文章我就详细的讲位运算(不出意外的话,呵呵)。最后在给大家一张表,方便大家更快的进行进制转换(其实中途的时候我便想列出来,但为了想让大家自己动手在纸上演算,所以我放到最后):二进制十进制八进制十六进制0001111210223113341004451105561116671000778100181091010911A10111012B11001113C10111214D11011315E11101416F11111517G 全部完结

先说下十进制,就是由0,1,2,3,4,5,6,7,8,9为十个数组成的数字,当然0不能放前面的。
同样,八进制,是由 0~8八个数字组的数字,
十六进制,是由0~9,a,b,c,d,e,f十六个数组成的数字,a~f,表示10~15;

方法(转八进制,其余类似):
由156来作例子。
商 余数
156/8=19.....4
19/8=2.......3
2/8=0........2
结束,
所以转为八进制是234
156--->234

再算下十六进制的(用2608作例子)

2608/16=163.....0
163/16=10.......3
10/16=0.........10 (注:10即是a);
所以十六进制表示是a30;
其余的类似。

除以要转的进制数取余,然后倒着写就是所需要的进制了!


乐安县18711136116: 计算机:10进制和2进制还有16进制之间怎么转换? -
徭霄健脾: 1.二进制与十进制数间的转换 (1)二进制转换为十进制 将每个二进制数按权展开后求和即可.请看例题: 把二进制数(101.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10 (2)十进制转换为二进制 一般需要将十进制数的整...

乐安县18711136116: 简述二进制与十进制、十六进制之间相互转换的方法? -
徭霄健脾: 十进制转二进制:整数部分,除2取余,逆序排列;小数部分,乘2取整. 二进制转十进制:按权展开!

乐安县18711136116: 数学进制之间的转换公式是什么啊?十进制数到二进制的转换、二进制数到十进制的转换;十进制数到十六进制的转换、十六进制数到十进制的转换…… 反正... -
徭霄健脾:[答案] 数制 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点... 逢十六进一 1、数的进位记数法 N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0 2、十进制数与P进制数之间的转换 ①...

乐安县18711136116: 二进制,十六进制,十进制之间如何转换?
徭霄健脾: 将二进制、八进制或十六进制数按权展开相加即可以得到相应的十进制数. 例如,将二进制数(1011.011)2、八进制(268.48)8和十六进制数(212.A)16转算成十进制数的方法分别为: (1011.011)2=1*23+0*22+1*21+1*20+0*2-1+1*2-...

乐安县18711136116: 2进制、8进制、10进制、16进制、之间的转换怎么算啊 -
徭霄健脾:[答案] 十进制整数转换R进制(R可以是任何整数,比如3、5、7)整数,方法就是除R取余,十进制转八或十六进制方法类似转二进制,除以基数取余就行了,比如转八进制就除8,转十六进制就除16. 二进制和八进制、十六进制之间转换采用的是分组转换...

乐安县18711136116: 二进制,十进制,十六进制之间的转换 -
徭霄健脾: 你好: 简单的给你说个例子类说明,有不懂的再追问我. 二进制:由1和0构成,它是由满2进1的方式.如10001+1=10010. 十进制:由1~9构成, 它是由满10进1的方式.如59+1=60. 十六进制:由1~9以及大写字母ABCDEF构成, 它是由满16...

乐安县18711136116: 二进制十进制和十六进制之间的转换过程是怎样转换的
徭霄健脾: 4合1 就是二进制的4位合为十六进制的1位 例:101010100001111转十六进制,先分成4位一组 101,0101,0000,1111 然后分别转换101=5, 0101=5, 0000=0, 1111=15=F 则转换后的十六进制数为 550F

乐安县18711136116: 2进制和10进制,16进制之间怎么转换 -
徭霄健脾: 用系统自带的计算器 从查看菜单选到科学型计算器 在上面输入你需要转换的数值 在点选下面的十六进制,十进制,八进制,二进制 就可以看到上面自动帮你换算好了

乐安县18711136116: 电脑中二进制,十进制,十六进制之间是如何转换,有什么诀窍
徭霄健脾: 、转换为十进制 二进制化为十进制 例:将二进制数101.01转换成十进制数 (101.01)2 = 1*2^2 + 0*2^1 + 1*2^0 + 0*2^(-1) + 1*2^(-2) = (5.25)10 八进制化为十进制 例:将八进制数12.6转换成十进制数 (12.6)8 = 1*8^1 + 2*8^0 + 6*8^(-1) = (10...

乐安县18711136116: 二进制数、十进制数、十六进制数之间是怎么样进行转换的???有什么规律??? -
徭霄健脾: 这个问题答案很长的 建议你看书 十进制转二进制:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0.最后将所有余数倒序排列,得到数就是转换结果.二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网