信息表示和处理

2019-04-13 13:44发布

原写于2010-04-24   计算机以二进制表示和存储信息。计算机内部数据的存储,根据数据的特性分为: a.无符号整数 b.有符号整数(补码) c.浮点数   明确的关键点: a.计算机内部是通过有限的位编码一个数字,因此存在“溢出”现象,因为表示的范围是有限的。 b.大多数计算机使用8位的块,做为最小的可寻址的存储器单位。 c.不同的数据类型,数据大小是不一样的。(准确的要依赖机器和编译器)。 d.对象的地址使用字节序列中的最小的地址。(网络传输、跨平台时考虑字节序的问题)     一、无符号整数 基本的“二进制”表示。   二、有符号整数 --- 补码 同余 使用补码,减法也可按加法来处理(ALU不用去实现减法运算)。(两个用补码表示的数据相加时候,将符号位和其它位统一处理,如果最高位(符号位)有进位,则进位被舍弃。) 最高有效位为符号位,1负数,0正数。 Java只支持有符号整数】   三、浮点数 划分为三个域: a.符号 b.有效位(二进制小数) c.指数位(2的幂,对浮点数加权) 单精度:1/23/8;双精度:1/52/11 特性:精度有限,浮点运算是不可结合和交换的。   四、“模”概念 是指一个计量系统的计数范围.如时钟等.计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个。例如:时钟的计量范围是011,=12. 表示n位的计算机计量范围是02(n)-1,=2n.【注:n表示指数】
实质上是计量器产生溢出的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数.任何有模的计量器,均可化减法为加法运算. 例如: 假设当前时针指向10,而准确时间是6,调整时间可有以下两种拨法:
a.
倒拨4小时,即:10-4=6
b.
顺拨8小时:10+8=12+6=6
在以12模的系统中,8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替. 而言,84互为补数.实际上以12模的系统中,111,102,93,75,66都有这个特性.共同的特点是两者相加等于模.
对于计算机,其概念和方法完全一样.n位计算机,n=8, 所能表示的最大数是11111111,若再加1称为100000000(9),但因只有8,最高位1自然丢失.又回了00000000,所以8位二进制系统的模为2(8). 在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了.把补数用到计算机对数的处理上,就是补码。