今天学习关于二进制以及其他进制之间不同以及互相转换的方法.首先我们要知道进制之间不同的原因只有一个,那就是他们之间的模各不相同.比如,二进制的模是2,十进制的模是10,也就是在个位数等于这个模数时,各进制向前进一位.比如10进制,9是个位数,但是再加上1后,10(念作十)就是个二位数了.二进制也是如此.1是个位数,再加1,就不是2,而是10(读一零= =.),其他各类进制也是如此.十进制是我们人类使用计数的进制,二进制是我们给机器创造 使用的进制.而八进制和十六进制,我刚省略了他们2个,他们则是因为二进制由机器表达出来过于繁杂冗长,而创造出来的.那初步知道了各个进制的关系之后,对于我们转换进制之间的数字就显得方便.因为主要有4种进制,那我们学习进制间转换也围绕着这4种进制开展.
##二进制转十进制
这是比较重要的一点,因为上文所说,这2种进制分别是人类和机器的语音,那这2种进制的转换就相当于我们在对着机器或其他人进行翻译:我们先假设一个二进制数将其转为十进制数,比如1001这个数字,将其转为十进制的公式就是1*2^3+0*2^2+0*2^1+1=9.
或许你一开始看到这个式子会一头雾水.但是其实各进制之间都是存在一个恒等的公式的.噢当然八进制和十六进制之间转换不存在这个公式.这两个进制之间的转换需要借助二进制或十进制.
那么我来解释下这个公式,其实很简单,首先,二进制和十进制其实是相同的概念,不同的是二进制是逢二进一,十进制是逢十进一,就是十进制中的从右往左数的第二位数上的一个1就代表一个10^1(也就是我们数字中常说的十位)而百位(从右往左数的第三个位数)上的一个1就代表100也是就10^2,以此类推……那么因为二进制是逢二进一,所以,从右往左数第二个数位上每个1表示一个2^1,第三位上每个1表示一个2^2.公式就由此得出.当你熟练这个公式后,比如100010101这个二进制数.第一个1在第九位(从右往左)也就是2^8=256,第二个1在五位2^4=16,第三个1在三位2^2=4第四个1在一位1*2^0=1,再把他们相加,就是该二进制数的十进制表示。
二的次方数
2^0 = 1;
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
##二进制转八进制和十六进制
这2个进制放在一起说是因为8=2^3,16=2^4,那么也就是说三位2进制数等于一位八进制数,4位二进制数等于一位十六进制数。
比如
10001111这个数,我们先把它拆分成3位一组的3位一组的数字也就是 10 001 111(从右往左拆,如果从左往右拆,如果数字不够3位就要在末位加上0,在从左往右数末位加0势必会改变数字的大小,而在首位就不会对此产生影响)得出这个八进制数是217,这个数的十六进制数 1000 1111 也就是8F
八进制和十六进制之间没有可直接转换的公式,所以他们通常可以先转换成二进制再转换成另一进制来解决。
##十进制转二进制、八进制、十六进制
十进制转二进制比起上面来有点麻烦.
他的公式是这样的:
设一个十进制数位222,那么222/2=111…0
111/2=55…1
55/2=27…1
27/2=13…1
13/2=6…1
6/2=3…0
3/2=1…1
1/2=0…1
那此时的转换来的二进制数就是上述算式中得出的余数11011110,记住顺序是从下往上写的.
十进制转8进制与十六进制也是如此,转八进制除数就为8,转十六进制除数就为16。
进制转换.
原创qq596c5384eae35 ©著作权
©著作权归作者所有:来自51CTO博客作者qq596c5384eae35的原创作品,谢绝转载,否则将追究法律责任
下一篇:计算机概类
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
进制转换 2031 (进制转换)
进制转换
Java Memory 16进制 -
C# .NET 16进制转换,10进制转换,8进制转换,2进制转换
C# .NET 16进制转换,10进制转换,8进制转换,2进制转换
c# .net 10进制转换 16进制转换 2进制转换