非专业的写码教程_0_理论篇

从代码到硬件底层–感受计算机的强大和过去几十年里大佬们的智慧

好吧其实我也没有彻底搞清楚我接下来会讲的,所以如果各位大佬有高见请立即指出(雾)

这章姑且算是一个序章,不过毕竟咱不出书,写写博文而已,序章可以直接切入整体,不用感谢CCTV。

所以说,我要打破一个惯例,刚开始先不说hello world,这章我想谈谈,代码,二进制程序,计算机硬件,他们是怎么互相工作的,到底是怎么一个回事儿。

如果你稍微对现代的开发技术稍有了解,你应该知道,现在的程序员不会再去对着一大堆1和0在那儿激动了,取而代之的便是更容易理解的代码程序,我知道你们想看实例,这里也不方便贴一张图(其实就是懒),你现在立马按下f12应该就明白是什么一个概念了。

但是,没人敢否认,计算机底层永远还是二进制,只不过今天不再会那么直接了而已,而从代码到二进制,便是拖了一样东西的福——编译器,没有它,现在全世界程序员总数估计还是过不了十万,编译器的工作也只有一个——把程序员写的代码转化成二进制,或者有时候会转化成中间语言(CIL)或者字节码(java特有的),然后将这种媒介再编译一次转化为二进制去执行。(这么说应该不会太难懂吧,方)

不过如今,各种程序纷纷出现,但是原理都不会有太大差别,只是表现形式多种多样,所以现在见到什么也都见怪不怪了。

现在大部分程序语言,体系都很相似,最主要要了解的两个东西,不管在那个语言里都会出现的东西:1. 变量, 2.函数(或叫方法),这个才是真 · 基础,这里我们首先介绍一下,变量是个啥玩意儿,它和电脑底层的关系又是什么。

变量,是一个单位的数据,而其单位,便叫做类型(后面会说到),这些变量,每在代码中写一个,就会在运行程序时多一个数据,这个数据,就被储存在,你电脑的内存条里,没错就是那根4GB,8GB,或者16GB的内存条里,这每个数据都可以由你随意修改(写入),或者查看(读取),那么,不过呢,你能用的内存也是有限的,不过范围呢,便取决于你的内存条的存储大小,当然,现在你完全不用担心会占满它,因为内存条的大小其实是非常大的,16GB,就相当于16,000mb=16,000,000kb=16,000,000,000 bit,而一个整数变量,只有2~4个bit,一个英文字母一个bit,一个汉字2bit,所以你大概可以知道,我们的电脑之强大。然后类型呢,就是取决了一个变量会占用内存的大小,或者直观点说就是该变量表达的形式,比如一个整数(int),一个小数(double或float),或者一个字符串(就是一段文本,string),当然,这些类型你目前也无须理解,只需知道这些所谓的变量是储存在电脑运行内存里的数据就好了。

函数,又称方法,就是一段代码,这些代码可以被执行,其中就涉及到了各种执行顺序,规则,你可以设置条件执行,循环执行,等等,所谓执行呢,也不过就是运行另外一个函数,你可以这么理解:

函数A(){

函数B(参数1,参数2);

}

这样函数A的功能就是以参数1和参数2执行函数B,

这样,如果在任何一个地方写上“函数A()”就等同于写了一行“函数B(参数1,参数2)”,当然函数不会这么简单,里面还会有返回值,参数传递,条件执行,循环执行等等东西,会陆续在以后讲到。不过关于函数的本质,其实就是让编译出的处理指令利用cpu进行计算(不确定),然后直接或间接地修改内存中的变量,以实现各种功能。

打个不是那么恰当的比喻,就比如你在烤饼干(我就特别喜欢)吧!在我第一次烤饼干时,我便是拿着《君芝的烘焙教程》的烤饼干教程,它里面写出了所有原料,并列在了最前面,这些你就可以理解为变量,然后下面写了许多该如何把那些配料用何种方式混合起来的“步骤”,但内容始终脱离不了这些配料,你可以把这些操作步骤理解为函数。最终烤出来的饼干,也就是我们执行这些步骤下来的结果啦!

到这里,大家应该也都对程序什么的有个概念了吧,接下来可能还会继续写,不过也有可能就把更多的内容放在后面的篇章中了。

 

No Comments

Add your comment

Translate/繁简转换