而这小程序向他打开了计算机底层原理的大门。
那个火腿朋友不但将编译好的程序给了他,与之附带的还有这个小程序的源代码。
ls惊讶地发现,这个程序并不是由bsc语言编写的,而是一些奇怪的数字,刚开始的时候他一点儿也看不懂,但这并没有影响他对其进行深入研究的兴趣。后来他才知道,原来这些数字是一种十六进制的被称为“机器码”的语言。这些数字,按照固定的换算关系,可以很容易地将其转换为仅仅由“0”和“1”组成的数字串。
而“0”和“1”才是计算机中最本质的原理所在。
bsc语言只是建立在“机器码”之上的一种高级语言,之所以发明出来,是为了让程序员能够更好的记忆,降低编程的难度。
这个道理,就如同那些成语典故一样,虽然只有短短的几个字,却可能包含着一大段的内容。程序员之前早就学过这些“典故”,所以他们编写程序的时候,就如同在写文章,随心所欲地使用着这些成语典故。但是计算机却比较“笨”,他无法直接理解这些典故,必须通过“编译器”这种工具翻译一下,将成语典故解释为一大段比较浅显易懂的文字,这样它才能理解。
程序员甚至不用关心这些典故的详细内容,如典故发生的时间地点和涉及到的具体人物,他们只需要大概知道这个典故可以在什么时候使用就行了。反正还有“编译器”这个翻译人员在,他最终会将具体的细节和计算机说清楚的。
这样的好处是显而易见的,程序员可以节省大量的时间和精力,通过使用“典故”,可以很迅速地就可以编写出字所需要的程序。
不过,这也有很大的弊端。因为如果程序员不了解这些“典故”的来龙去脉的话,就无法做一些比较细致的东西。就如同ls之前那样,他只学过bsc,而并不知道bsc最终到底会被翻译成什么样的机器码,不了解其中数据传输的细节,所以也就无法编写出这个程序。
这实际上是bsc的限制所导致的,它本身的设计缺陷导致了它无法操作这些底层的东西。
而通过这个小程序,ls知道了原来在bsc语言下面,还存在一种被称之为“机器码”的东西,而在机器码的下面,更是有一种叫做“二进制码”的东西。
到了这个层面,这就完全是硬件方面的东西了。“0”表示一个开关的断开,而“1”则是表示开关的闭合。作为一个资深火腿,对这种简单的电路他最是熟悉不过。
他这个时候才发现,原来计算机就这么简单。
====
小强建了一个腾迅微.群,详细【rockxe点co】查看,欢迎大家加入