进制是什么?
进制是学习计算机语言最基本的知识,所以一定要掌握。其实它很简单,我们日常生活中有很多进制的例子,例如:
所以进制就是逢几进一,r 进制就是逢 r 进一。计算机只能识别二进制,人类最习惯使用的是十进制,而为了实际需要,又建立了八进制和十六进制。八进制就是逢八进一,十六进制就是逢十六进一。
C语言中规定了八进制数前面要加
比如 5,到底是十进制、八进制还是十六进制?什么都不加就默认是十进制。如果希望 5 是八进制,那么前面就加上 0;如果希望 5 是十六进制,那么前面就加上 0x 或 0X。
十进制为逢十进一,它只有 0、1、2、3、4、5、6、7、8、9 这十个基数。逢十进一的意思就是:9 再加 1 就变为 10,即向十位进了一位,原来个位回归 0。
二进制为逢二进一,它只有 0 和 1 两个基数。逢二进一的意思就是:
那么十进制的 5 和二进制的 101 代表的是不是同一个数字?答案是“是”,它们本质上是同一个数字。
无论是十进制、二进制、八进制还是十六进制,都只是计数的一种方式,只不过它们用的是不同的进制,所以表现形式不一样,但本质上都是同一个数字。理解了上面内容,后面很多知识就很容易理解了。
八进制就是逢八进一,它只有 0、1、2、3、4、5、6、7 这八个基数。
由上可以总结出,r 进制有 r 个基数,而且基数里面最大的是 r–1,因为基数都是从 0 开始的。比如五进制中,基数最大的是 4,基数分别为 0、1、2、3、4。
十六进制肯定有十六个基数。它的基数除了十进制的 0~9 之外,还有字母 A~F,总共加起来是十六个。注意,字母不区分大小写。十六进制是逢十六进一,F 是十五,加 1 就变成十六了,逢十六就进一,即 0x10。
下面是常用进制对照表,大家可以看一下。
原因很简单,就是因为我们都有十个手指!进制的起源是用于记数的,人类刚开始都是用手指计数的。即使是现在的小朋友算数也还是喜欢用手指,所以人类最习惯用十进制。
因为二进制从硬件上比较容易实现。任何事物最少也有两种不同的状态,所以区分成两种状态比较容易。但是要将一个硬件硬生生地区分成十种不同的状态,这个就太难、太复杂了。
- 一分钟六十秒,逢六十进一,就是六十进制;
- 一天二十四小时,逢二十四进一,就是二十四进制;
- 一星期七天,逢七进一,就是七进制;
- 一年十二个月,逢十二进一,就是十二进制;
- 小学数学是逢十进一,就是十进制;
- 而计算机中的数据只有 0 和 1,逢二进一,就是二进制。
所以进制就是逢几进一,r 进制就是逢 r 进一。计算机只能识别二进制,人类最习惯使用的是十进制,而为了实际需要,又建立了八进制和十六进制。八进制就是逢八进一,十六进制就是逢十六进一。
C语言中规定了八进制数前面要加
0
(注意是数字零而不是字母 o),十六进制数前面要加0x
或0X
,而十进制前面什么都不加。这是为什么呢?比如 5,到底是十进制、八进制还是十六进制?什么都不加就默认是十进制。如果希望 5 是八进制,那么前面就加上 0;如果希望 5 是十六进制,那么前面就加上 0x 或 0X。
十进制为逢十进一,它只有 0、1、2、3、4、5、6、7、8、9 这十个基数。逢十进一的意思就是:9 再加 1 就变为 10,即向十位进了一位,原来个位回归 0。
二进制为逢二进一,它只有 0 和 1 两个基数。逢二进一的意思就是:
- 1 再加 1 就变成 10,即向前进了一位,原来的 1 变成 0;
- 再加 1 就是 11;
- 再加 1 又逢二,再往前进一位,进一位后第二个 1 又逢二再进位,就是 100 了;
- 再加 1 变成 101,再加 1 变成 110,再加 1 变成 111,再加 1 变成 1000……
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|---|
二进制 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 |
那么十进制的 5 和二进制的 101 代表的是不是同一个数字?答案是“是”,它们本质上是同一个数字。
无论是十进制、二进制、八进制还是十六进制,都只是计数的一种方式,只不过它们用的是不同的进制,所以表现形式不一样,但本质上都是同一个数字。理解了上面内容,后面很多知识就很容易理解了。
八进制就是逢八进一,它只有 0、1、2、3、4、5、6、7 这八个基数。
由上可以总结出,r 进制有 r 个基数,而且基数里面最大的是 r–1,因为基数都是从 0 开始的。比如五进制中,基数最大的是 4,基数分别为 0、1、2、3、4。
十六进制肯定有十六个基数。它的基数除了十进制的 0~9 之外,还有字母 A~F,总共加起来是十六个。注意,字母不区分大小写。十六进制是逢十六进一,F 是十五,加 1 就变成十六了,逢十六就进一,即 0x10。
下面是常用进制对照表,大家可以看一下。
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
人类为什么最习惯用十进制
人类为什么最习惯用逢十进一的十进制?对于世界上大部分的国家,即便之前因为交通不发达,他们彼此之间并不知道在世界的某一个角落还有另一个民族的存在,但是他们使用的都是十进制!这是为什么?原因很简单,就是因为我们都有十个手指!进制的起源是用于记数的,人类刚开始都是用手指计数的。即使是现在的小朋友算数也还是喜欢用手指,所以人类最习惯用十进制。
计算机为什么用的是二进制
那么为什么计算机使用的是二进制呢?因为二进制从硬件上比较容易实现。任何事物最少也有两种不同的状态,所以区分成两种状态比较容易。但是要将一个硬件硬生生地区分成十种不同的状态,这个就太难、太复杂了。
小结
进制是学习计算机必须要掌握的内容,也是一个重点。-
掌握进制的概念,区分八进制数、十进制数和十六进制数的表示方法。注意八进制数是以
0
开头,十六进制数是以0x
或0X
开头,以及了解其原因。 - 掌握进制只是数字的不同表现形式,它们本质上表示的是同一个数。
- 了解为什么人类习惯使用十进制而计算机使用的却是二进制。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算