重新梳理一下程序设计的基础知识

本文介绍了程序设计的基础知识,包括程序的概念、程序设计语言的发展历程(从机器语言到高级语言)、程序的基本概念(如编译型与解释型语言、数据与数据结构),以及计算机的数据表示方法。

       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),宜采用尖括号以生查                                                                 找时间,如果要包含用户自己定义的文件,宜用双引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值