学习一门编程语言,无论是C/C 还是JAVA等等任何一门编程语言,都没有捷径,唯一的捷径就是多敲代码,多思考。把自己的疑问通过代码来表达出来,然后,验证问题、解决问题。
但是,在学习编程之前,我们还是需要一些基础知识的准备,例如了解数据在内存中存储的形式、二进制、十六进制的计算等等。
内存中数据存储格式
我们渡过的每一天都是从白天到黑夜,再从黑夜到白天这样循环重复着,如同中华文化里的太极,表示着阴和阳之间的相互转换。这个世界上,任何事情都有两面性,也就是阴和阳。
同样,计算机也是由阴和阳组成。我们知道,计算机是一台电子设备,是由N多个二极管、三极管组成。这些二极管和三极管的特性就是“截止和导通”;“截止”和“导通”,就形成了电路的“开”和“关”。
计算机中的内存设备,就是由N多二极管、三极管组成,里面就存放着电路的打开和关闭的状态。最终,电路的打开和关闭的状态,就是由0和1这两种数值来表示。
首先,我们来看一个电影情节:有2个黑帮在进行约谈,随时可能会发生冲突。一个黑帮的头领对手下说:
(1) 在交谈的最后,如果我把吃饭的筷子放在碗上,就表示和谈,不要动手;
(2) 如果我把筷子放在碗的旁边,就表示谈判破裂,你们马上动手;
在这个电影情节中,我们得到这样的信息:
(1) 碗是一个容器,可以把筷子放在上面;
(2) 如果碗里面放筷子,表示和谈,不动手;
(3) 如果碗里面不放筷子,表示谈判破裂,马上动手;
那么,这个碗就是一个“容器”,存放了我们需要的信息。
在计算机中,内存是存放计算机数据的地方,就是一个“容器”,可以存放二极管的“截止”和“导通”状态,就是存放电路的“打开”和“关闭”状态。可以表示为:
(1) 电路的“打开”状态用1表示;
(2) 电路的“关闭”状态用0表示;
那么,当我们按下键盘的某个按键时,就在内存的某个地方,存放1数值;当键盘弹起的时候,内存中存储键盘按下状态的地方,从1值变为0值。那么,计算机就可以知道键盘的按下和释放的状态。
此时,我们知道,计算机的内存,存放0和1这样的数据。在计算机中,存储数据的最基本单位是字节(Byte),一个字节由8位(bit)组成。一个位(bit)就是就是存储一个二进制数据。
十进制数据
在讲解二进制数据之前,我们先来看看我们最常用的十进制数据。
从小学读书起,我们就开始学习数学,最简单的加法有:
5 3 = 8;
5 5 = 10;
10 16 = 26;
看到这样的加法算术很简单,它只有一个规则:
(1) 个位数与个位数相加,满10进1;
(2) 十位数与十位数相加,满10进1;
(3) 百位数与百位数相加,满10进1;
...
以此类推,这种规则表示的数,我们称为:十进制数;
表示十进制数的元素就有:
0,1,2,3,4,5,6,7,8,9
这样的10个数值;
所以,从我们最常见的算术开始,我们了解了十进制数。它的规则就是:满10进1;那么,根据这个规则,我们可以定义N进制数,它的规则就是:
(1) 表示N进制数的元素,有N个符号;
(2) 数据的表示,是满N进1;
,