进制知识,是学习C语言的基础。这一篇文章,我们简要介绍一下,有关进制方面的知识。
我们平时生活中,都是用的十进制。也就是:零、一、二、三、四、五、六、七、八、九,这十个数字,组成了十进制。
十进制,是由十个阿拉伯数字组成,那么二进制,就是由两个阿拉伯数字组成;八进制,就是由八个阿拉伯数字组成;十六进制,就是由十六个数字组成。
二进制由0和1组成,八进制由0——7组成,十六进制由0——F组成。
二进制,和八进制的对应关系,下面这个关系表,要尽量背过:
上面这张表,如果背过之后,是非常有好处的。可能我们暂时体会不到这个好处,但是如果把这张表背过以后,对于一个字节里面,二进制,和十六进制的对应关系,我们就能一下子反应过来了。
上面是八个对应的关系,二进制与十六进制之间,是十六个对应关系。我们往下看:
十六进制,是在八进制基础上,再加上8
比如:二进制 100 对应的八进制,是4;那么二进制 1100对应的十六进制是:4+8 = C
十六进制中,A、B、C、D、E、F 分别代表: 10、11、12、13、14、15,这些字母,大小写,都是可以的。
上面这些知识,进制方面的知识,需要在网上,搜寻相关资料,做进一步了解。
最重要的,是二进制与八进制对应的转换表,这个尽量要背过。这一张表,很重要。内存是以字节为单位,一个字节,有八个二进制位。背过了这一张表,那么,在一个字节内,二进制与十六进制的对应关系,就会反应起来很快。
比如:
二进制:1001 0011 对应的十六进制: 93 ,四个为一组,四个为一组,分开。
十六进制,数字前面要加:0x ,比如:0xA1 , 0x93 等等。八进制,数字前面要加:0 , 比如:012 , 016 等等。
是数字0加上x,数字0,不是字母o,很可惜,0和o长得很像。这一点,确实是一件很遗憾的事情。
只是,这个世上,确实很难完美,我们要接受不完美。比如这里的数字0和字母o长的很像,很容易混淆。
C语言能识别的进制是:八进制、十进制、十六进制。机器(CPU)能识别的进制是:二进制。
C语言中,没有二进制。二进制是机器才能识别的进制。这一点,在考试的时候,容易出错。
比如下面这一道选择题:
答案是:A
联系客服