进制的讲解
2017-11-01 本文已影响97人
长风留言
1、什么是进制
进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
- 常见的进制有
- 二进制
- 八进制
- 十进制
- 十六进制
接下来我将一一的对这些常用的进制进行讲解,以及它们之间的转换。
2、二进制
1、什么是二进制?
二进制就是只有0和1两种表达形式的计数,简称二进制,我们的计算机存储数据的时候都是采用二进制进行存储。表达一个二进制数,每一位最大值不能超过1,
2、二进制的写法
例如 : 01011001
10100110
01101010
10101100
二进制的后缀:b 例如:10011001b,这里需要注意一下,就是在程序编程的时候,要想表达一个二进制数,那么需要给它加一个前缀:0b,如:0b00000001。
3、八进制
1、什么是八进制?
概念在这里我就不多说了,那么八进制它的表达形式取值只能从0~7取,也就是说,表达一个八进制数,每一位最大值不能超过7。
2、八进制的写法
例如: 057
010
076
025
八进制的前缀:0 如上所示
表达一个二进制和八进制的示例代码:
main(int argc, const char * argv[]) {
int a = 0b00000001;//这就是在程序编程时需要表达的一个二进制数
int b = 057;//表达一个8进制数
printf("%d\n%d\n",a,b);
return 0;
}
4、十进制
1、什么是十进制?
十进制是我们最常见的一种计数方式,那么十进制每一位的表达形式只能从0~9取,每一位最大值不能超过9
2、十进制的写法
例如:18
20
98
6785
注意;十进制数的写法就喝我们平时数学上的数字表达是一样的,在这里就不做过多的强调。
5、二进制和十进制之间的转换
二进制转十进制
对于二进制转十进制的规则是,以2为底,从低位向高位对每一位进行2幂次方,然后把每一位2的幂次方进行与本身相对应的位的一个乘积在相加。具体实现如下:
例如: 0 1 0 1 1 0 1 1 (八位的一个二进制数)
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
转化为十进制:直接把上面的以2为底的幂进行每一位相乘求和
0*2^7+1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+1*2^1+1*2^0 = 91
当然,二进制转十进制很简单,这里就不做过多的例子介绍。
十进制转二进制
十进制转二进制就是对十进制数的一个以2为除数的求余过程,具体计算过程如下:
例如: 请把57转化成二进制数
57 / 2 = 28 ...... 1
28 / 2 = 14 ......0
14 / 2 = 7 ......0
7 / 2 = 3 ...... 1
3 / 2 = 1 ...... 1
1 / 2 = 0 ...... 1
注意:在写二进制结果的时候,顺序是倒着写噢。
那么:转换结果为 00111001。
6、二进制和八进制之间的转换
二进制转八进制
对于二进制转八进制,有一句口诀:三位二进制数对应一位八进制数
例如:二进制 (补一个0)--> 010 001 101 (八位二进制数)
八进制 2 1 5
这里需要补充一点就是,任何进制计数,高位都是在左边,右边为低位,在高位前补零,那么对于整个数值来说是没有变化的,但是,千万不能在低位后面补零。在进行二进制转八进制时,必须从右往左进行3位二进制为一个断点。在高位时,如果不足3位,那么我们需要在最高位的前面补零。
八进制转二进制
对于八进制转二进制,有一句口诀:一位八进制数对于3位二进制,
例子和上面的这个例子相反:
八进制 0215
二进制 000 010 001 101
那么在写结果的时候,一般写成: 10001101.
7、八进制和十进制之间的转换
八进制转十进制
八进制转十进制其实是和二进制转十进制的计算方式一样,不同的就是,八进制是以8为底,而二进制是以2为底,那么,后面说到十六进制的时候,也是一样的道理,十六进制转十进制是以16为底,其他的都和二进制一样。所以这里我就不在举例了。
十进制转八进制
对于十进制转八进制和二进制也是差不多的,只是除数变为8进行求余。这里也不多说了,因为我们在学习的过程中要学会举一反三。
8、十六进制
1、什么是十六进制?
十六进制是我们程序或者内存地址的一个常用的一种表达,每一位的取值范围为0~9和A~F,那么在这里,A对于的就是10,B对应的就是11,以此类推,F就是15,所以,十六进制是逢16进1.十六进制的写法: 0xcf 其中0x表示的是十六进制的前缀,声明这个数是十六进制数,后面的cf就是数值,当然这里字符的大小写并没有影响。
例如:0xfc 0x1f 0xffdd
9、二进制和十六进制之间的转换
1、二进制转十六进制
二进制转十六进制,有一句口诀:四位二进制数对应一位十六进制数
8421(码)
例如 二进制 0110 1010
十六进制 5 A 结果:0x5A.
这里提到8421码,简单解释一下,8421码是为了程序员方便快捷的对进制之间的转换而构造的,他们都是2^0 ~ 2^3 的一个值,
2、十六进制转二进制
十六进制转二进制,有一句口诀:一位十六进制数对应4位二进制数
转发和八进制转二进制是差不多的,这里就不举例了。
总结:
进制与进制之间的转换是有一定的规律的,都是相互类似的,记住不同点。要学会举一反三。这里没有提8进制和16进制,其实,学者应该已经想到了,我们是可以通过二进制作为中间的桥梁来进行转换的,那么这个过程就由读者自行去尝试和练习。
结尾
最后,希望读者在读文章的时候发现有错误或者不好的地方,欢迎留言,我会及时更改,感谢你的阅读和评论已经点赞收藏。