计算机系统的概念(2)

本文我们要说一说计算机中信息的表示

一计算机信息的表示

我们在数学中学习的计算,都是基于十进制的。这种进制,是起源于印度,在12世纪时期流传到阿拉伯,在阿拉伯进行了改进,然后在13世纪传播到西方。这就是我们今天最广泛使用的阿拉伯数字,它包含0~9一共十个符号。

十进制的特点是,有10个不同的记号,遇到10的整倍数进位。

在构造存储和处理信息的机器时,不适于使用十进制,而适合使用二进制。它通过一些物质的物理特性,如电压的高或低,通电或者不通电,打孔带的有孔或者无孔等方式来记录信息。

二进制的特点是,有2个不同的记号,遇到2的整倍数进位。

这种简单的方式,对于工业制造提供了稳定的基础,现在的工艺,已经可以在一个芯片上集成千万级甚至亿级的电路了。

但是使用计算机所表示的信息,在进行数学计算时可能并不是那么精确。

首先计算机的数值计算是有范围的,超出范围就可能得到错误的结果;

其次计算机的计算是有精度限制的,超出精度就会出现误差;

最后计算机的计算并不符合某些数学定律。

因此我们要从计算机信息的存储入手,理解计算机的信息存储特点,以避免出现错误的计算。

二信息存储

为了计算机信息表示的方便,还经常使用八进制,十六进制。

十六进制的特点是,有16个不同的记号,遇到16的整倍数进位。

十六进制的符号,除了十进制的0~9之外,还包含,a,b,c,d,e,f等字符。每个字符,对应四位bit,例如十六进制的0Xf,用二进制表示,就是1111。即十进制的15。

我们在安装windows系统时,要分32位,64位。有些软件,也分32位,64位。那这个“位”到底是什么意思呢?

相对于32位技术而言,64位技术的这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。

如果CPU是64位的,但是操作系统是32位的,那CPU的的性能就无法充分发挥出来,最直观的感觉就是,安装32位系统比64位系统还慢。当然这还要其他的硬件满足安装64位系统的基本要求。

32位和64位的系统,对于我们日常应用来说,32位系统,只能识别大概4G的虚拟地址空间,系统实际上可用内存为3.25G。而64位系统,理论上可以支持2的64次方的虚拟地址空间,但目前的系统最大支持128G的内存,而目前主流主板,一般支持到32G的内存。

这是我工作中用到的一台PC Server的配置。使用的是64位cpu,64位的系统,以及32G的内存。

在这里,我们需明确一个概念,就是机器字长:

32位系统,一个机器字长度是32bit;

64位系统,一个机器字长度是64bit。

对于C语言而言,每种数据都有其特定的类型,但数据本身都是由0,1组成的bit序列,那类型是怎么区分出来的呢?

其实不同的数据类型,除了上下文之外,只在长度上有区分。

下面列表列出了,C常见数值类型占用几个字符


C声明


32位系统(字符)


64位系统(字符)


Char


1


1


Short int


2


2


Int


4


4


Long int


4


8


Char*


4


8


Float


4


4


double


8


8

注意指针类型,无论指向的是什么具体类型,都占一个机器字长。

对于超过1个字符长度的数据类型,机器在实际存储的时候,有两种方式:

一种是小端法,一种是大端法。

所谓小端法,就是指这个数据的最低内存位置存储的是低有效位。

而大端法,就是表示这个数据的最低内存位置存储的是高有效位。

如果我们想让计算机存储一个字符串,需要对数据进行编码。编码的方式,最常用的,是用于表示英语字符的ASCII编码,

此外,还有一种比较通用的编码,就是Unicode编码。它的每个字符占16bit,即2个字节。它可以表示除英语之外很多国家的语言字符。

Java和.NET都是采用的这种字符集来编码的。

以前我们说过关于hello world程序的二进制表示。其实对于不同的机器,其二进制也是不同的,而且无法兼容。

因此如果想用一种语言进行程序编写,然后在不同架构不同系统的计算机上运行,就需要进行特殊处理。例如Java的JVM,就是可以将Java代码根据不同的机器架构编译成对应的机器代码序列。从而实现Java的“一次编译,到处运行”的跨平台性。

说完了数值和字符,下面说一说关于二进制的数学特性。

计算机存储数据是使用二进制,它与数学中的“布尔代数”非常相似。在布尔代数中,只有2个值:true或false。而计算机语言中,一般都包含一种称为Bool的数据类型。研究这种数据类型,对于我们学习计算机的存储和运算是有帮助的。

下图列出bool类型的一些数学特点。

在C语言中,对于数据可以进行如下三种布尔运算:

1按位布尔运算。

2逻辑运算与短路逻辑运算。

3移位运算:左位移运算,逻辑右位移运算,算术右位移运算。

这些运算在现在高级计算机语言中基本都有,其基本规则与C语言都基本是一致的。

三总结

本节主要讲了计算机的信息存储的形式,以及一些基本的运算特性。

计算机将信息编码为bit位的序列。有不同的编码方式用来表示整数,实数和字符串。不同架构的计算机在编码数字和多字节数据时所产生的bit序列是不同的。

布尔运算是计算机中的重要运算方式。

时间: 2024-10-14 01:56:51

计算机系统的概念(2)的相关文章

计算机系统的概念(1)

一从hello world说起 The only way to learn a new programming language is by writing programs in it.The first program to write is the same for all languages: Print the words Hello, world ——<TCPL> 这是TCPL开篇的一句话,那么作为博客的开篇,就从这个对于学习所有计算机语言的统一入口——hello world程序说

对找工作功不可没——评《深入理解计算机系统》

对找工作功不可没——评<深入理解计算机系统> 引子: 在我刚刚进入中科院计算所读研的时候,同宿舍的师兄便向我推荐了一本<深入理解计算机系统>,这本书从一个程序员的视角详细剖析了整个计算机系统,涵盖了组成原理.汇编语言.体系结构.操作系统.网络等计算机基础知识. 由于时间所限,我并没有立刻阅读,而是将其列入了找工作前的复习书单.2010年8月,我用了一个月的时间读完了这本书的原版<Computer System:A programmer's perspective>.后来

第三章、主机规划与磁盘分区

1. Linux与硬件的搭配 1.1 认识计算机的硬件配备 1.2 选择与Linux搭配的主机配备: 硬件支持相关网站 1.3 各硬件装置在Linux中的档名 2. 磁盘分区 2.1 磁碟连接的方式与装置档名的关系 2.2 磁碟的组成复习 2.3 磁盘分区表(partition table) 2.4 启动流程与主要启动记录区(MBR) 2.5 Linux安装模式下,磁盘分区的选择(极重要) 3. 安装Linux前的规划 3.1 选择适当的distribution 3.2 主机的服务规划与硬件的关

计算机学科漫谈

在这篇博文里,我想和大家聊一聊自己对计算机学科的理解.当下本科阶段的计算机专业教学涉及计算机学科的方方面面,分类繁杂,有时可能令新人茫然不知所措.那么,对计算机专业的学者来说,什么是最重要的呢?我相信,一千个读者,一千个哈姆雷特,同样的,每个计算机的学习者都有自己对专业的一番认识.如果说本科四年的计算机专业课程是对专业知识的横向积累,那么把握计算机专业的本质的内容则需要纵向的思考.因此我个人的观点是:对计算机系统整体概念的理解在计算机专业学习中尤其关键.于是我把自己对专业的理解和认识总结出来,希

DLNA简介

DLNA 一.DLNA简介 DLNA成立于2003年6月24日,其前身是DHWG(Digital Home Working Group 数字家庭工作组),由Sony.Intel.Microsoft等发起成立.旨在解决个人PC ,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能,目前成员公司已达280多家.DLN全称为DIGITAL LIVING NETWORK ALLIANCE, 直译成中文就是"数字生活网络联盟",其宗旨是Enj

深入理解计算机系统(1.3)---金字塔形的存储设备、操作系统的抽象概念

本文转载地址:http://www.cnblogs.com/zuoxiaolong/p/computer3.html 上一章LZ给各位展示了一下hello程序的简单执行过程,可以看出在这一过程当中,系统在数据的传输上花费了大量的时间.硬件开发商为了减少这种数据传输的时间成本,采用一种高速缓存的技术去减少这种时间成本. 高速缓存被置放于处理器当中,与处理器中的寄存器文件直接进行数据交换,这样大大减少了数据传输的时间成本,使得程序的运行速度可以得到数倍的提升.而作为一个程序猿,如果可以适当的利用高速

计算机系统漫游

计算机系统由硬件系统和软件系统组成,它们共同协作来完成执行程序的任务.作为20世纪(世界上第一台计算机ENIAC与1946年诞生于美国的宾夕法尼亚大学)最伟大的发明之一,计算机系统可以说是人类迄今为止创造的最复杂最精密的工具.今天,借助计算机界的圣经教材<深入理解计算机系统>,我来带领大家探索一下计算机系统的秘密. 1 信息就是位 + 上下文 计算机是信息学科的产物,其主要左右就是帮助人们处理各种各样的信息.而信息本身是一个比较抽象的概念,从百度百科给出的定义中我们可以知道,信息是用来传输和处

TCP/IP四层模型和OSI七层模型的概念

转:http://blog.csdn.net/superjunjin/article/details/7841099/ TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层).   TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传

计算机基本概念

计算机基本概念 一.计算机系统 计算机系统的基本组成: 在计算机内部,数值.文字.声音.图形图像等各种信息都必须经过数字化编码后才能被传送.储存和处理:数值.文字和英文字母等都被认为是字符,任何字符进入计算机时,都必须转换成二进制表示形式,称为字符编码. 总线是连接多个设备的信息传送通道,实际上是一组信号线.广义地讲,任何连接两个以上电子元器件都可以称为总线,总线主要分为系统总线(内总线)和通信总线(外总线). 内总线:用于计算机各组成部分,CPU.内存和接口等的连接:PCI总线是目前微型机上广