关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

当前位置 : 首页 » 7788 » 计算机数据的机器级表示 正文

计算机数据的机器级表示

7788 / by: 麦新杰 / 发布:2017年5月19日 / 15次阅读 / 暂无评论
标签:计算机   / 最后修改时间: 2017-05-23 16:02:45

7788 / 2017年5月19日 / 15次阅读 / 标签:计算机  

拍拍贷
featured image

数据是计算机的处理对象,计算机内只能处理离散数据。

计算机内部所有数据都用2进制表示,这一点没有疑问,不过这一点背后有一个原因,即制造只有两种稳定状态的物理器件相对更容易,而且价格也更便宜。最早的计算机,第一台不可编程计算机ABC第一台可编程计算机ENIAC,都是使用电子管构造而成的。后来有了晶体管,再后来是集成电路IC,都没有改变两种稳定状态的物理器件这一原则。

计算机内的数据分成两种:(1)数值数据,表示一个具体的数值大小;(2)非数值数据,比如用一个byte表示ASCII编码,以及更复杂的各种文字编码等,CPU的ISA对应的操作码也是二进制表示的非数值数据。因此,所进入计算机的数据,都要经过编码,都是二进制数据,只是表示的含义各不相同。

 

关于非数值数据,本小站有如下文章可供学习参考:

序列化和反序列化(及各种编码)

UTF-8编码和字节序

什么是UTF-8 without BOM?

计算机系统通用的字符编码

 

数值数据分为:整形数(分有符号和无符号),浮点数(都有符号),或者说整数和实数。

计算机通过定点数来表示所有的数值:(1)定点整数,小数点固定在最后边,计算机内不可表示;(2)定点小数,小数点固定在最左边;(3)浮点数通过一个符号位,一个定点小数,和一个定点整数来组合表示,浮点数的基(数制)也是通过约定的方式在计算是保持一致。

计算机的计算可以分为:(1)数值计算,即各种科学计算;(2)非数值计算,我们大学学的数据结构这本书,主要就是介绍非数值计算的各种常用算法,操作系统的设计也涉及大量非数值计算算法。这两种计算有不同的应用领域,但也常常组合起来完成各种复杂工程。

定点数在计算机内的表示方法有多种:原码,补码,反码,移码。详细说明如下:

原码很直观,但有两个缺点:(1)0的表示不唯一;(2)原码加减运算规则复杂。在进行原码加减运算过程中,要判定是否是两个异号数相加或两个同号数相减,若是,则必须判定两个数的绝对值大小,根据判断结果决定结果符号,并用绝对值大的数减去绝对值小的数。现代计算机中,不用原码来表示整数,只用其来表示浮点数中的定点小数,即尾数部分。

补码表示就可以实现加减运算的统一,即用加法来实现减法运算。正数的补码是它本身,负数的补码等于模与该负数绝对值之差。现代计算机中,用补码来表示定点整数,对于无符号数,都是正数,其表示结果相当于原码,8个bit可以最大表示到255。对于有符号整数,8bit的情况下,可以表示-128到127。(符号位在最前面,0表示正,1表示负,因此最大的数是127,-128的补码表示为b10000000,这时,我理解,0的表示唯一了!)

C语言在进行两个整数运算的时候(各种运算),如果有一个是无符号数,代码会自动将另一个数也当做无符号数来使用(将内存中的bit位按照无符号数来解释使用),计算结果也是无符号数。

反码很少被使用,也有很多缺点。

移码浮点数,用定点整数表示阶码(指数),这个阶码,一般情况下,就是用移码来表示的。(固定加上一个正常数,方便相互之间的比较)

浮点数的知识,麦新杰准备单独开一篇文章来记录学习收获。

-- (*^-^*) --

本文链接:http://www.maixj.net/misc/shuju-15361
云上小悟 麦新杰(QQ:1093023102)

《计算机数据的机器级表示》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客