C/C++培训
达内IT学院
400-996-5531
本次内容笔者将完全抛弃传统教学的形式,通过自己所学所闻得出来的心得,用通俗易懂的语言结合生活,来让大家更好的认识计算机编程,更好的入门计算机基础。
笔者也想用自己的论述告诉大家,专业知识有时会比较枯燥乏味点,但当它生活联系起来时,便会发现其中蕴含着无数多前人的智慧。它们和生活的联系是如此的密切。
本篇文章你们能学到:
为什么编程语言要这样发展的?
生活中的进制思想
计算机为什么要使用二进制
位、字节与二进制联系
编程语言的发展趋势
为什么要有编译软件
编译原理
编程语言都有哪几种
C语言是诞生于贝尔实验室,它是在1970年,由丹尼斯里奇博士在B语言的基础上发展完整出来的。也正因为如此,丹尼斯博士被誉为“C语言之父”。
从这里我们可以知道,大多数语言的出现都是从别的语言基础上逐渐发展完善得来的。
那么在C语言诞生之前,我们的程序员是靠什么来编程的?
那么让我们简单来看看编程语言的发展。
在计算机诞生之初,人们是利用机器语言0和1来编程。关于0和1,这也是我们常说的二进制语言。如果单纯从进制转换角度来看,那么其实就是考我们的数学换算能力。可是,它绝不是单纯的数学转换的,在两个数字的背后可隐藏着许多具体的东西。
我们生活最习惯的进制就是十进制了,这个进制思想从出生开始,爸爸妈妈教我们数数字的时候就开始灌输到我们的脑子里了,包括我们所接受的数学教育也是基于10进制上的。现在,我们马上就要进入计算机的世界了,而计算机可不认识十进制数呢,它是二进制的,而想要理解计算机那就要按照它的规则来。
我们该如何从十进制思想束缚中挣脱出来,进入二进制的世界呢?那么,接下我们看看也许以前我们从来都没有思考的问题,来帮助大家更好的理解二进制。
比如十进制的数字就是0~9,如果我们想用十进制表示比9大的数字如10,如果纯用一位数字来表示是不可能的,因为10进制中单位数字最大的就是9,那么又要怎么做呢??大家可以思考下。
其实也不难想到,我们平时在生活上想用手势暗示对方这是数字10时,我们会怎么做呢?那自然会伸出一个手指和一个拳头。
十进制的发明者就考虑用多位数字来表示比9大的数字。进一位,表达为10,依次类推,就可以用0~9的数字表示比9大的任意数了。那么你想用二进制表示比1大的数字,那么应该怎么表示呢?自然就能想到,得用两位数字来表示,因为二进制所用最大数字中最大的就是1。。。。自然而然,当我们想表示2时就用01表示,表示4就用100。。
也正是这种用多位数字表达任意数的思想产生了多种进制。常见进制就有二进制、八进制、十进制、十六进制。
看了那么多的进制,同学们可能会想,为什么要发明那么多的进制呢,用十进制不就可以了吗?那多好,贴近我们正常人的思维。
其实所有进制的出现也是为了方便我们的生活啊,只是因为用途与我们常规生活不一样。为什么我们在日常生活中要用十进制,而不是采用八进制、二进制、十六进制呢?因为我们有十个手指阿,而且手也是最容易出现在我们的视线当中的,所以对于我们人类来说,采用十进制思想是最好的。
其实我们一开始也是对计算机采用十进制的,后来发现不可行啊。
因为计算机不同,它可不是人,它既没有手指,也没有大脑,它只是一堆废铁。对于通了电的它来说,它就只有两种状态,那就是通电和断电。聪明的人类利用它这种特性,决定采用0和1来表示它。
所以严格来说,关于二进制,在数学上它就是进制换算,但对于计算机而言,它们只是一种符号。如果用一个电子开关来表示的话,1就是断开,0就是闭合。如果用电平来表示的话,1就是高电平,0就是低电平。
回到刚才所说,计算机是可以用来计算和存储数据。但在刚刚笔者的论述理解中,计算机只是机器,它只有通电和断电这两种状态呢。那么它又是怎么和数字联系到一起的呢?
我们可以这样想,如果一根线的电平高低能代表两种状态,那么2根线会有什么样的组合呢?
那就是00、01、10、11这四种状态了,那么8根线呢?学过排列和组合的我们知道,那就是一共有2^8(2的八次方 = 256)种状态。我们计算机就是常常用8根线放在一起,同时计数,就能表示0~255,一共256种状态了。所以我们计算机的数据单位是这样的,将一根线表示为“位”,将8根线或者8位称为一个字节。
我们C语言中有个数据类型为char,它的是一个字节的,那么它能存储的数值范围多少呢?请大家思考下。
原来,计算机的计数也没那么什么嘛,只是几根线的电平高低组合。我们人类就是将它们的状态当成我们的数字。比如一个8位的计算器,那么我们把它的状态组合第一种状态0000 0000当做是我们的数学中的0,那255应该怎么用状态表示呢?当然是1111 1111了。
接下来展示下三代语言的代码编写,比如我们写代码计算两个数相加,
那么我们的编程是这样写的,如下图所示:
在这里,我们通过三代语言的实例比较中,可以很直观看到了我们编写代码的难度越来越小了,代码量也在减小,从起初的0和1到利用英文单词来助记(如ADD在英文单词就是相加的意思),再到利用数学语言来表达。我们可以发现,我们的编程语言在以简单、代码量越来越小的趋势发展中。
那么这里为什么机器可以读懂a+b呢?是不是变聪明了呢?当然不是,机器还是机器,它还是只能认识0和1。那为什么人们还是可以让机器看懂a+b的意思呢?原来啊,我们这里有个逆向编译的过程
在这里充当编译的就是编译软件,我们有很多种叫法,IDE,编译环境,开发环境都是他。高级语言不止一种,不同的高级语言有不同的编译软件。我们将要学习的C语言便是比较底层的高级语言,属于面向结构语言,它使用的编译环境就是Visual C++6.0(这个软件可以去网上下载,该公众号也有提供)。现在的高级语言有很多种了,比较热门的就有Java、Python、C++等,这些是属于面向对象的语言。面向对象的语言也都是基于面向结构语言的基础上发展而来的。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved