本帖最后由 超神级 于 2014-2-28 20:07 编辑
/*
进制转换正式start://由于进制的内容很多我就不一一列举了!就讲点{{{十进制转二进制八进制十六进制的知识}}}!
讲点简单的吧!十进制转二进制八进制十六进制!和为进制呢?就想0,1,2,3,4,5,6,7,8,9,10;这样就是一个十进制遇10进一位!前面本来只有
个位数但是9过了以后就到了十也就是!由个位变成了十位!向前进了一位这就是进制!就好像20一样由于进一位需要十个一那么这个十位的2是由20个1进化而成的!
先讲十进制转二进制吧!其实和转八进制十六进制都是差不多的!
二进制顾明思意!肯定是遇到二进一位!就好像十进制遇到十进一位!好吧先写二进制和十进制和八进制,十六进制的0-16的对照表吧!
二进制 0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111,10000;//遇到2进1位!其他的和十进制进位都是差不多的!
十进制 0,1, 2,3,4, 5, 6, 7 , 8, 9 , 10, 11 , 12, 13, 14, 15 16;
八进制 1 ,2, 3 ,4 ,5, 6 , 7 10 ,11,12, 13, 14, 15, 16, 17, 20;
十六进制 1,2, 3, 4 ,5 6 7 8 ,9 A, B, C, D, E ,F 10;
十进制转二进制有很多高效的算法!我列举一个!
除二取余碾转相除法:
用2整除十进制整数,可以得到一个商和余数。
再用2去除商,又会得到一个商和余数,
如此进行,直到商为0时为止:
举例:
就像十进制的九转二进制的九
9/2=4余1第三位
4/2=2余0第二位
2/2=1余0第一位
2/1=0(《---一定要除到商为0)余1第一位
将余数和最后的1从下向上倒序写前面加1 就是结果1001。
好吧现在该谈原理了(原理讲解摘抄于网络)!
举个十进制整数转换为二进制整数的例子,假设十进制整数A化得的二进制数为edcba 的形式,那么用上面的方法按权展开, 得
A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (后面的和不正是化十进制的过程吗)
现在假设该数未化为二进制,除以基数2得
A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2
注意:a除不开二,余下了!其他的绝对能除开,因为他们都包含2,而a乘的是1,他本是绝对不包含因数2,只能余下。
商得:
b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以除以基数2余下了b,以此类推。
当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba
好吧!我承认上面转换对于新人确实不太好理解!只要记住2进制没有2遇十进位!8进制没有8,遇到8进位!16进制没有16,遇16进位,就好了!如果你问我
问什么十进制有十!我说点自己的理解!因为十进制是生活中要用到。(一些东西总是有些标准的)!或者汉语的表达方式就是这样不然人怎么与人交流,
我这个教程也就讲不下去了!“(或者你也可以说十进制没有十!用十六进制去看十他就是A)用十进制看他只不过是进位。”
========================================================================================================================
十进制转八进制!
间接法:先将十进制转换成二进制,然后将二进制又转换成八进制
直接法:八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法
方法:除8取余法。
而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,
直到商为0为止,最后读数时候,同上。
就以10进制16,转8进制为例
被除数 除数 商 余数
16 /8= 2 ->0第二位
2 /8= 0 ->2第一位
十进制的16转八进制是20!
============================================================================
十进制转16进制方法同上!
就那十进制的32为例吧转16进制!
32/16=2---0
2/16=0---2
=========================================================================================
同学们肯定发现了十进制换算二 八 十六进制的方法几乎都是换汤不换药的!其实进制转换的我个人感觉运用到实际的话还
不如一些小技巧好呢!例如1111,1111,1111,1111,转换成16进制就是FFFF!使用大脑计算就需要1秒!为何如此之快呢!
因为二进制4个数代表一位16进制!1110=E=14。
好了进制转换篇就次结束!我为了简洁避开了小数的转换!其实小数转换也是很简单的!大家可以去看看!
*/
|