重新梳理一下程序设计的基础知识
2016年11月7日 星期一 小雨
今天主要复习一下程序设计的基础知识,梳理一下,让自己更清楚。
首先,程序是什么呢?程序是为了实现一个特定的目标而设计的一组可操作的工作步骤,对于计算机而言,程序就是系统可以识别的一组有序的指令。程序能指挥计算机执行我们想要它做的动作。程序储存在磁盘上,在执行时从磁盘到内存再到寄存器,最后被CPU执行,程序的执行过程与古代皇上的处理政务过程有些类似,可以进行类比。在古代,皇宫外部的民情、大臣写的奏折就好比程序,外面的天下就好比硬盘,程序储存在硬盘中,大臣好比内存,大臣将民情总结并上交给太监,而太监就是寄存器,太监将奏折上交给皇上,让皇上处理,而CPU也是从寄存器中取出程序,然后执行。程序是与计算机沟通的语言,由特定语法和关键字构成,从入口点开始,原则是由上而下,从左往右,一行一行执行的。
接着,程序设计语言又有那些呢?在计算机最初诞生的时候,程序是一段一段的二进制语言,称为机器语言。由于二进制语言的编程实在是不方便,不适合编写、阅读,于是慢慢有了汇编语言,汇编语言就是将机器语言中的一些关键的指令用一些符号来代替,与机器语言相比,汇编确实有了一些可读性,但是汇编还是很复杂,编程的工作量还是很大。于是高级语言应运而生,高级语言离机器越来越远,相反,语法接近人类的自然语言,而且,高级语言执行的不再是指令,而是语句,一行语句对应多个指令,因此,它的开发效率越来越高。但是,高级语言必须编译成机器码。高级语言具有良好的可移植性。
关于程序有几个基本概念。编译型语言指需要先经过编译和链接程序产生可执行文件的语言,比如:Java/c/c++等。解释型语言指不需要编译和链接的过程,直接在特定的程序或环境下即可执行的语言,如:JavaScript/python等。数据是计算机程序处理的对象,可以是整数、实数、字符、也可以是图像、声音等的编码表示。数据结构指数据与数据间存在一种或多种特定关系,与数据结构密切相关的便是数据的类型和数据的存放。程序设计就是编程的过程。软件是程序与文档共同组成。
最后,就是计算机的数据表示,可以分为数值数据和非数值数据。二进制为什么三位一读就是八进制。四位一读就是十六进制呢?举例:75H=7\*16+5\*16^0 D=(2^2+2^1+2^0)\*(2^4)+(2^2+2^1)\*(2^4)D
7D=00000111B 乘以2^4即00010000 相当于将00000111中的1往前移4位 所以二进制的四位相当于一位16进制
近两天的错误总结:1、对文件来说 rm 会提示
rm -f 直接删除
对文件夹说 rm 不能删
rm -f 不能删
rm -r 会提示
rm -rf 直接删
2、a command >file 2>file
b command >file 2>&1
a的写法将stdout和stderr都直接送到file中,会出现两个同时抢占file管道,file会被打开两次,stdout 和stderr输出的信息会相互覆盖。
b的写法将stdout直接送向file,stderr继承1的管道后,再被送往file,此时file被打开了一次,也只用了 一个管道FDI,包括了stdout和stderr的内容。b的写法效率比a高。
3、> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空
>> 是将输出内容追加到目标文件,如果文件存在,则将新内容追加到那个文件的末尾,该文件原有内 容不受影响。
4、**1,用尖括号时,系统到存放C库函数头文件所在的目录(即C编译系统的include子目录)中寻找要包含的文件 (这称为标准方式)
2,用双引号时,系统现在用户当前目录中寻找要包含的文件,若找不到,再安标准方式查找(即尖括号的查 找方式)如果调用系统函数而用#include命令来包含相应文件的头文件(如,stdio.h),宜采用尖括号以生查 找时间,如果要包含用户自己定义的文件,宜用双引号。**
还没有评论,来说两句吧...