02-编码与程序

来源:互联网 发布:ubuntu 安装glib 2.0 编辑:程序博客网 时间:2024/04/29 04:15
1、进制:即计数的方式,十进制最常用,计算机中经常用到二进制、八进制、十六进制。
    二进制:0 1                                                                0-1
    八进制:0 1 2 3 4 5 6 7                                            0-7
    十进制:0 1 2 3 4 5 6 7 8 9                                     0-9
十六进制:0 1 2 3 4 5 6 7 8 9  A   B   C   D   E   F    0-15
其实就是    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
转换成十进制:
  四位十进制数 1101 = 1*(10的3次方)+1*(10的2次方)+0*(10的1次方)+1*(10的0次方)
  四位二进制数 1101 = 1*(2的 3次方)+ 1*(2的2次方)+0*(2的 1次方)+1*(2的 0次方)
  四位八进制数 1101 = 1*(8的 3次方)+ 1*(8的2次方)+0*(8的 1次方)+1*(8的 0次方)
四位十六进制数 1101 = 1*(16的3次方)+1*(16的2次方)+0*(16的1次方)+1*(16的0次方)
如果这样还看不出规律,去撞墙。
2 编码
  计算机只认识0和1,字符都是经过编码系统进行翻译之后,才能被计算机识别的。 最常用的编码系统是ASCII表,比如字符'A'在ASCII表的序号是65,即翻译成65=0100 0001,其他字符如汉字、标点、特殊符号等等都是一样的道理,由于编码系统杂而不一,比如说有些编码系统不能正确地翻译汉字,就出现所谓乱码,此时国际组织ISO/IEC跳出来制订了所谓的Unicode编码系统,即UTF8。
3 操作系统
3.1 操作系统就是一个大型的系统程序,负责整个计算机系统相关资源的分配和管理,也就是管理计算机的所有活动以及驱动系统中的所有硬件。
    计算机如果没有软件就是一堆废铁,那么操作系统的功能就是让CPU可以开始进行逻辑判断和数值运算、 让主存可以开始读入/读出数据和程序代码、让硬盘可以开始被存取、让网卡可以开始传输数据、 让所有周边设备可以开始运转等等。总之,硬件的所有动作都必须要透过操作系统来达成就是了。做到这些,可以称计算机有了内核(Kernel),而且所有设备已经就绪,但是此时让用户去操作是非常危险的,随时可能把硬件搞挂,整个系统就崩溃掉了。为了解决这个问题,内核提供一整组的函数接口给用户(可怜的C程序员),内核提供的接口称为系统调用,使用系统调用来编写系统程序来管理硬件,这些程序称为核心程序。所以操作系统可理解成操作系统=内核+核心程序,而计算机可以理解为计算机=操作系统+用户应用程序。
3.2 核心的功能
3.2.1 提供设备的驱动程序的接口
      操作系统要使用某个硬件,必须先驱动它,要驱动它,则必须安装指定设备的合适的驱动,才能正常工作。驱动程序属于核心程序,但是是由硬件厂商来开发的,操作系统只给厂商提供函数接口。
3.2.2 进程(程序)管理
      一部计算机可能同时间有很多的工作跑到CPU等待运算处理,比如一边听音乐,一边看小说,但是一个CPU同一个时间只能处理一个任务,核心这个时候必须要能够控制这些工作的切换,让CPU的资源得到有效的分配并运行。
3.2.3 内存管理
      核心控制整个系统的内存管理,因为系统所有的程序代码和数据都必须要先存放在内存中,内存管理至关重要。 当内存不够时,核心会提供虚拟内存的功能,虚拟内存即将辅存(磁盘)上的SWAP分区当做内存来使用。linux下可以在/etc/fstab中看到swap交换分区,windows可以设置虚拟内存大小。
3.2.4 文件系统管理
文件系统其实就是磁盘上组织文件的方法,不同的格式就是不同的组织方法,比如说windows的NTFS,FAT32等,linux的ext2,ext3等等。磁盘必须格式化成指定的格式才能用来存储文件。格式化的过程就需要核心的支持,也就是说核心不认识文件系统,就无法格式化,磁盘就无法使用。
4 用户应用程序
应用程序是利用操作系统提供的开发接口所开发出来的应用软件,这些软件可以让用户操作,以达到某些计算机的功能利用。比如office软件,浏览器等等。

5  编译程序

也就是编译器,编译器就是将“高级程序语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables),如果没有编译器,程序员的日子将过得水深火热。常见的高级程序语言有C、C++、JAVA、VB、C#等,每一种语言都有对应的编译器。

原创粉丝点击