第一阶段:基础知识强化

计算机编程基础2008-02-07 23:57

 

一.计算机中数据的表示方法
计算机是一种电子设备,由复杂的电子元器件组合而成,一个电子元器件有带电和不带电两种状态,通常我们将带电状态表示为数值1,不带电状态表示为数值0,多个这样的元器件的组合可以表示更多状态,也就是可以表示更多的数据,如000表示0,001表示1,010表示2,011表示3,依此类推,111表示7,一个元器件可表示一位(bit)数据,这种表示数据的方式就叫二进制。在实际的电子设备中,我们将8个这样的元器件形成一个单元,这样的单元叫一个字节(byte),一个字节能表示多少个数呢?表示数值的范围是0-255。
二进制计数的缺点:书写太长,容易出错,一般计算机的数据位数都是4的整数倍,所以,在计算机里通常采用16进制计数法。用数字可以表示各种信息,计算机里只有数值,当你在内存中看到一个数值时,这个数值可能代表各种意义,生活中的数值也可以代表其他意义,如1234可以代表密码,存款额,电报信息,根据上下线索,我们知道能够知道这数值代表的意义。补码的应用,计算机里没有真正的负数,利用溢出,我们可将加法变减法,负数就是基于这个原理而用补码来表示。面试经常碰到的一道考题,实现100位计算器就是检查对计算机数据表示及转化是否清楚。什么是ASCII码,ASCII码不用死记。重点分析Ascii和Unicode的区别。GB-->BIG5原理。我们通常说的1M数据的单位是什么?1M网速的单位又是什么呢?

二.计算机硬件的组成结构及各部件的功能介绍
基本的计算机系统由输入/输出,存储器,cpu(包括运算器,寄存器,和控制器)等几个部分。计算机系统结构图(见附图1)。计算机的几个主要部件用系统总线连接起来,总线分为地址,数据,控制等三类,控制信息被控制器译码成各种控制信号通过控制线输出,用求解两个数相加的过程讲解各部件的作用。8位机,16位,32位,64位机的区分。RAM/ROM/EPROM/硬盘的区别。

三.计算机指令与程序,程序代码的组织结构
CPU和内存都从软件运行的角度进行讲解,CPU能够进行算术运算,接受外围设备状态的变化,向外围设备发出命令。这些算术运算,外围设备状态检测,向外围设备发出命令就是计算机指令,有各种各样的指令(包括输入,输出),为了区分这些指令,指令也是用用二进制数值来表示的,打个比方,我们可以用111代表加,110代表减,001代表向外设输出,这些指令的集合就组成了我们的程序,指令分为操作码和操作数两部分,在1+1例字中,+就是指令,1就是操作数。程序可以编写完后,可以保存起来,在以后需要时,取出来重新运行。由于指令都是以数值表示的,因此,程序也是以数据的形式保存在硬盘上的。
内存是存储数据和指令的地方,程序是预先编好的指令集合,程序运行前,必须先装入内存,程序通常是按顺序存储在内存中的,程序计数器(PC)用于跟踪指令所在的地址。程序刚开始时,PC指向程序的第一条指令的地址,CPU从PC所指向的内存中取出指令,将PC的内容加1,以指向下一条指令的地址,并处理刚才取得的指令。上一条指令运行完后,CPU又从PC所指向的内存(下一个存储单元)中接着取新的指令运行。计算机软件就是这样运行的。通过程序演示。
一条指令,对应计算机所能执行的一个基本动作,在编程种我们经常要用到跳转、循环,中断,这些都有专门的指令。计算机所能执行的全部指令,就是计算机的指令系统,这是某种CPU所特有的。用二进制指令表示的程序也叫机器码。程序结构可分为顺序,分支,循环,子程序等。 堆栈原理,函数的调用传值与传引用的区别。

四.汇编语言与高级语言
用二进制表示的指令也叫机器码指令,用机器码编写的指令不好理解和记忆,容易出错,人们便很容易想到通过一些助记符(通常是英文单词的缩写)来代替操作码。这样写出来的程序就是汇编程序。注意,最终交给计算机运行的还是机器码,因此,要有相应的工具(本身也是程序)将汇编程序翻译成机器码。利用VC查看程序的汇编和机器码。对于汇编只须简单了解,一般我们不直接涉及汇编。简要介绍8086的各汇编指令(LD,ADD,JNC,JP,SUB,OR,DEC,INC)。
用汇编语言编程,处理一件通用的事情,如屏幕输出,需编写大量的代码。而且对每个程序员都要重复编写和维护这些代码,而且汇编程序还不能在不同的机器上运行。为了解决上述问题,且让用户的程序集中在解决不同的实际问题上,而不是重复那些与计算机硬件地层相关的工作。人们有创造了高级语言,如C,BASIC,PASCAL等。人们编写了能够处理计算机操作中的日常事务的各种程序,并把他们结合在一起,这样就形成了操作系统。什么是系统函数调用,什么是API。
在操作系统基础上编写的解决用户各种实际问题的程序,就是我们的应用软件,这也是我们这些程序员所要做的事情了。

五.程序的编译与连接,C语言的程序结构组成,工程化管理,vc开发工具介绍
编译过程,一个程序可以包含多个源文件,每个源文件是被独立编译,编译的过程是逐行解释的过程,只要碰到起不认识的符号就报错,所以又将常用的符号的说明放在一个.h文件中,在原程序中把这个.h文件包含进来。增量编译技术,修改头文件不会引起自动编译。
连接过程,每个源文件都会被编译成各自的obj(机器码),这些obj与系统提供的obj一起连接成exe。要调用别人提供的函数,只需对其进行声明的头文件和函数的机器码所在的obj即可。
VC是编程语言,也是集成化(IDE)开发工具,提供了编辑器,编译器,库函数。用工程的方式管理多个源文件,为我们的应用提供了方便,就象我们用文件夹管理文件一样。
变量的定义,变量的作用,变量在内存中的生命周期。

六.计算机软件的运行过程及计算机启动原理。
bios,操作系统,应用软件。引导操作系统时的常见故障,如果从A引导,A中的软盘非操作系统,bios中硬盘信息设置错误。
硬盘分区的各项信息都在硬盘的0磁道1扇区的主引导记录中保存。计算机通过读取该主引导记录来获取系统引导信息,从而转向相应的引导程序。分区共有三种:主引导分区,扩展分区和逻辑分区。一个主引导记录中最多可以包括四个主引导分区项,分别启动不同的操作系统。扩展分区中只能定义逻辑分区,逻辑分区只能出现在扩展分区中。


七.编程中的几个简单的小算法
-1可以当作0xffffffff使用。
乘除移位原理,2的n次方的表示。
每间房能住5人,x个人需多少房间。
x在0到3之间循环的算法。
八.演示程序代码
/****1.cpp**********/
#include "stdio.h"
#include "2.h"
void main()
{
char ch1=getchar();
char ch2;
ch2=ch1+1;
putchar(ch2);
int z=add(1,2);
printf("%d\n",z);
}
/****2.cpp********/
int add(int x,int y)
{
return x+y;
}
/*****2.h********/
int add(int x,int y);
作业:
1.算出十六进制数3,7,a,b,c,d,e,f在计算机中的二进制表示,算出二进制数00001100,00001111,01011010的十六进制。必须做到随便从中出去任一个数,一眼就能看出结果。
2.-3,-7,-53在内存中的存储格式。
3.如何将一个1位整数用putchar函数在屏幕上输出(考是否理解了ascii)。
4.在VC中调试运行演示程序,观察各寄存器,内存,变量,汇编代码。
5.编程实验课堂上讲的各种小算法。
6.体验VC工具的工程化管理和编译、连接过程。
1.)编写一个能够打印出“hello it315”的源文件。
2.)在一个新的源文件中编写一个add函数,并在中调用。
3.)将的声明用头文件实现。
4.)实验将函数所在的源文件从工程中去掉,改用连接obj的方式实现。
 

 

你可能感兴趣的:(android,移动开发,职场,休闲)