1.数据与文字的表示方法

  • 计算机中使用的数据可分成两大类

    1. 符号数据:非数字符号的表示 ASCII、汉字、图形

      2.数值数据:数字数据的表示方式(定点、浮点)

  • 计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;

  • 编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)

1 数据格式

1.定点表示法

  • 所有数据的小数点位置固定不变
  • 理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):
    1. 纯小数
    2. 纯整数

image-20230527201428118

image-20230527201520154

image-20230527201620034

image-20230527201715510

2.浮点表示法

小数点位置随阶码【也就是下面的指数E】不同而浮动

  • 阶码;在表示一个浮点数的时候,要给出指数,用整数形式表示,常常称为阶码。

小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点数

任何一个数N 可以表示为:

image-20230527202058629

尾数:是一个纯小数

E:是比例因子的指数,称为浮点数的指数,是一个整数

基数:一般是2或者10

浮点数的规格化表示:

(1.75)10 = 1.11 × 2 0 (规格化表示)= 0.111 × 2 1 = 0.0111 × 2 2

3.十进制数串的表示方法

  • 字符串形式

一个字节存放一个十进制的数位或符号位。在主存中,这样的一个十进制数占用连续的多字节,故为了指明指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。这种方式表示的十进制字符串主要用在非数值计算的应用领域。

  • 压缩的十进制数串形式

也就是一个字节存放2个十进制的数。比前一种形式更节省存储空间,有便于直接完成10进制的算数运算。

2.数的机器码表示

首先我们要知道几个概念

  • 真值:一般书写的数

  • 机器码:机器中表示的数,要解决在计算机内部数的正,负,和小数点运算的问题

    • 源码
    • 反码
    • 补码
    • 移码

1.原码表示法

  • 定点小数 x0 . x1 x2…xn

image-20230527221719187

例子:

x=+0.11001110 , y=-0.11001110

[x]原=0.11001110 ,[y]原=1.11001110

  • 定点整数 X0X1X2…Xn

image-20230527222654904

例子:

x=+11001110,y=-11001110

[x]原=011001110 [y]原=111001110

  • 特点
    • 表示简单,容易进行真值之间进行转换,实现乘除运算规则简单
    • 进行加减法运算十分麻烦

2.补码表示法

  • 例子

现为北京时间下午4点,但钟表显示为7点。有两种办法校对:

(1) 做减法 7-3 = 4 (逆时针退3格)

(2) 做加法 7+9 = 16 (顺时针进9格)

16 (mod 12) = 16-12 = 4 (以12为模,变成4)

mod 就是取模一样的,在数学上就是叫同余式。

  1. -4=+ 8 (mod 12 )
  2. -5 = +7(mod 12)
  • 补码表示法

定义:正数的补码就是正数的本身,负数的补码是原负数加上模。

计算机运算受字长限制,属于有模运算.

  1.  定点小数x0 .x1 x2…xn ,以2为模

image-20230527225057981

  1.  定点整数x0 .x1 x2…xn ,以2^n+1为模

image-20230527225335038

补码最大的优点就是将减法运算转换成加法运算。通常不按表达式求补码,而通过反码来得到。

3.反码表示法

  • 定义:正数的表示和原,补码相同,负数的补码符号位为1,数值位将源码的数值按位取反。

    • 定点小数x0.x1x2…xn

    image-20230527230202856

X1=+0.1011011 , [X1] 反 =0.1011011

X2= -0.1011011 , [X2] 反 =1.0100100

image-20230527230256166

  • [x ]补=[x ]反+2^-n(证明见书)

  • 反码表示有正0和负0之分

4.移码表示方法

  • 移码表示法(用在阶码中)
    • 定点整数定义 [x]移=2n+x 2n >x≥-2n
    • 0000000011111111(-2n2n -1)

x=+1011111

原码为01011111

补码为01011111

反码为01011111

移码为11011111

特点:移码和补码尾数相同,符号位相反

5.题目:

image-20230527231205384

image-20230527231225296

例八:

设机器字长16位,定点表示,尾数15位

(1)定点原码整数表示时,最大正数是多少?最小负数是多少?

0 111 111 111 111 111 最大正整数

​ x=(215 -1)10=(+32767)10

1 111 111 111 111 111 最小负整数

​ x=(1-2 15)10=-(215 -1)10=(-32767)10

(2)定点原码小数表示 ,最大正数是多少?最小负数是多少?

0 111 111 111 111 111 最大正小数

x=(1-2 15)10

1 111 111 111 111 111 最小负小数

x=-(1- 2 15)10

例九:

假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格话浮点数x,真值表示为:image-20230528012952908

问:它所表示的规格化的最大正数,最小正数,最大负数,最小负数是多少?

image-20230528013135259

3.字符串和字符串的表示方法

  • 符号数据:字符信息用数据表示:ASCII等
  • 字符表示方法用ASCII:用一个字节来表示,低7位用来编码(128),最高位位校验位【这里有ASCII表】