进制转换

来源:互联网 发布:阿里云国际版试用 编辑:程序博客网 时间:2024/06/16 17:49
本篇文章为自用 如需转载注明地址;
                 10进制转换为二进制:方法为10进制数字除以二除到0为止,将它所有余数写在一起形成一个数;就为所得的二进制数字;
例子:将150转化为二进制数字;
150/2=75.....0
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(从下往上依次写出)         写出后就为所得150的二进制数:10010110;
如何再将2进制数转化为10进制数呢?
为每位乘以2的n-1次方如  10010110为:1*2^7+0*2^6+0*2^5+......
再来说说2进制转化为8进制:
8进制即为逢8进一位;
如1100100为2进制数
将它变为8进制数可以将它分为三部分     分别为: 001(不够位数0来凑)     100         100
在通过其转换方法(类似于上面提到的二进制转换方法只不过这次是分部分转换)
即:0*2^2+0*2^1+0*2^0=1  1*2^2+...=4    4(前面看懂了后面自然会)
8进制数为144
如何再将它转化回来即 将它每一位除以2如二进制转化为10进制时一样;
1/2=0...1
即他的第一位为1(依旧为三位不够用0凑)所以为1
4/2=2...0
2/2=1...0
1/2=0...1(从下往上写)
所以为100
同理 144(8)=100
所以在转化为2进制数为1100100;
最后再来谈谈16进制
16进制顾名思义就是逢16进一位
除了基本上的0——9以外还有10——14 分别用 ABCDEF来表示(你可以想成扑克牌中的jqk分别代表11 12 和 13)
如何将2进制数转化为16进制数?
同上文中提到的2进制转化为8进制数
只不过8是2的三次方而16是他的4次方
因此要考虑4位:例子:100101100
可以将其从前往后一次分成三部分: 0001 0010 1100
然后在分别乘2的n-1次方 0*2^3+0*2^2+0*2^1+1*2^0=1;      2       ; 12(c);
所以这时候所得的结果(16进制)为12C;
16进制在转化为2进制则为分别除以2;
1/2=0....1;2/2=1....0;   c=12;
则为0001;1/2=0....1;12/2=6...0;
                   则为0010;6/2=3......0;
                                3/2=1......1;
                                   1/2=0.....1;
                                    则为1100;
所以结果就为100101100;
16进制转化为10进制的话每位乘以16的n-1次方;

0 0
原创粉丝点击