C/C++培训
美国上市C/C++培训机构

400-111-8989

热门课程

C语言计算机基础学习||新手入门必看

  • 时间:2017-08-28
  • 发布:云里雾里
  • 来源:爱生活懂生活

本次内容笔者将完全抛弃传统教学的形式,通过自己所学所闻得出来的心得,用通俗易懂的语言结合生活,来让大家更好的认识计算机编程,更好的入门计算机基础。

笔者也想用自己的论述告诉大家,专业知识有时会比较枯燥乏味点,但当它生活联系起来时,便会发现其中蕴含着无数多前人的智慧。它们和生活的联系是如此的密切。

本篇文章你们能学到:

为什么编程语言要这样发展的?

生活中的进制思想

计算机为什么要使用二进制

位、字节与二进制联系

编程语言的发展趋势

为什么要有编译软件

编译原理

编程语言都有哪几种

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++等,这些是属于面向对象的语言。面向对象的语言也都是基于面向结构语言的基础上发展而来的。

上一篇:2017百度C/C++开发工程师面试题
下一篇:2017年腾讯C++开发岗位面试题20道

C++入们知识点:C++语言的概述

学了C语言到底能做什么,能从事什么工作?

C/C++程序员求职简历模板

2017年腾讯C++开发岗位面试题20道

选择城市和中心
贵州省

广西省

海南省