计算机系统基础(二)——数据的存储和表示

数制和编码

定点数的编码表示

原码表示 正 号用0表示 负号用1表示 数值部分不变

0的表示不唯一,不利于程序员编程
加、减运算方式不统一
需额外对符号位进行处理,故不利于硬件设计
特别当a<b时,实现a-b比较困难

整数都采用补码来表示
但浮点数的尾数用原码定点小数表示

什么是移码表示?
将每一个数值加上一个偏置常数

为什么要用移码来表示指数(阶码)?
便于浮点数 加减运算时的对阶操作(比较大小)

模运算系统和补码表示
在一个模运算系统中,一个数与它除以模后的余数等价
始终是一种模12系统 现实世界中的模运算系统

一个负数的补码等于模减该负数的绝对值
对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数
负数的补码来代替。

现实世界的模运算系统举例
钟表

4位十进制数模运算系统

计算机中的运算器是模运算系统

一个负数的补码等于将对应正数补码
各位取反,末尾加一

运算器适合用补码表示和运算

真值和机器数
机器数 0和1组成

补码和真值的对应关系

值太大,用4位补码无法表示,故“溢出”
但用变形补码可保留符号位和最高数值位

在这里插入图片描述

C语言中的整数

无符号整数

LSB(Least Significant Bit)来表示最低有效位。(高位到低位多采用从左到右排列)
一般在全部是正数运算且不出现负值结果的场合下,可使用无符号数表示。例如,地址运算编号表示,等等。
无符号整数的编码中没有符号位

常在一个数的后面加一个“u”或“U”表示无符号数。

带符号整数

计算机必须能处理正数(positive)和负数(negative),用MSB表述数符(0-正数,1-负数)
注:MSB来表示最高有效位–高到低位从右到左
三种定点编码方式:
原码:定点小数,用来表示浮点数的尾数
移码:定点整数,用于表示浮点数的阶(指数)
补码:所有计算机都用补码来表示带符号整数

浮点数的编码表示

只要对尾数和指数分别编码,就可表示一个浮点数(即:实数)。

机器0:尾数为0或落在下溢区的数
浮点数范围比定点数大,但数的个数没变多,故数之间更稀疏,且不均匀

为了能表示更多有效数字,通常规定规格化数的小数点前为1!

早期,不同体系结构计算机所用的浮点数表示格式是不一样的,
在不同计算机之间进行程序移植时,需要考虑浮点数格式之间的转换。

现在所有通用计算机都采用IEEE754来表示浮点数

为什么用127?若是用128则阶码范围为多少?
表示的数值范围更大

为避免混淆,用阶码表示阶的编码,用阶或指数表示阶码的值

无穷大和非数的表示

非规格数

规格数、非数、非规格数的表示。
机器码转真值 、真值转机器码。127 IEEE754规定。

非数值数据的编码表示

逻辑数据、西文字符、汉字、多媒体数据

逻辑数据和数值数据在形式上并无差别,也是一串0/1序列,
计算机靠指令来识别。

西文字符常用7位ASCII码表示

汉字编码:输入码,内码,子模点阵或轮廓描述
GB2312-80字符集
汉字的区位码
汉字的国标码
至少需2个字节才能表示一个汉字内码。为什么?
由汉字的总数(超过6万字)决定。2的16次方
为与ASCII码区别,将国际码的两个字节的第一位置“1”后
得到一种汉字内码(可以有不同的编码方案)

多媒体数据:图形、图像、音频、视频等信息在机器内部也用0和1表示
图形用构建图形或曲线的坐标点及控制点来描述,而这些坐标点或
控制点则用数值数据描述
图像用构成图像的点(像素)的亮度、颜色或灰度等信息来描述,
这些亮度或颜色等值则用数值数据描述
音频信息通过对模拟声音进行采样、量化(用二进制编码)来获得,
因此量化后得到的是一个数值数据序列(随时间变化)。

多媒体信息用一个复杂的数据结构来描述,其中的基本数据或者是数值数据,
或者是用0/1编码的非数值数据。

数据宽度的存储容量单位

数据的基本宽度

存储器按字节编址,字节是最小可寻址单位

字长是数据通路的宽度
CPU内部总线的宽度、运算器的位数、通用寄存器的宽度(这些部件的宽度都是一样的)

数据通路指CPU内部数据流经的路径以及路径上的部件,主要是CPU
内部进行数据运算、存储和传送的部件,这些部件的宽度基本上要一致,才能相互匹配。

数据存储的字节排序

数据存储时的字节排列
存储器的比那只方式 大端方式 和 小端方式

大端方式:MBS所在的地址是数的地址
e.g. IBM 360/370,Motorola 68k
小端方式:LBS所在的地址是数的地址
e.g. Intel 80x86,DEC VAX

存放方式不同的机器间程序移植或数据通信时,会发生什么问题?
每个系统内部是一致的,但在系统间通信时可能会发生问题!
因为顺序不同,需要进行顺序转换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值