微机原理几个重要的基础知识

1.机器数和真值

计算机中只能表示0和1两种数码,为了表示正数和负数,需要专门选择一位符号位来表示数的符号,一般选择最高位,符号位为0的时候表示正数,符号位为1的时候表示负数,也就是说数的符号在计算机中数码化了。

我们把一个数在计算机中的表示形式称为机器数,原来实际数的本身的值叫做真值.

机器数的特点:

(1).机器数的正负号数值化;

(2).机器数表示的范围的大小受到机器字长的限制。

位(Bit)的概念: 计算机所能表示的最小数据单位,只有0和1两种状态,表示更大的数就要把更多的位组合起来作为一个整体,每增加一位,所能表示的数就增大一倍.

字节(Byte)的概念:一个字节为8位二进制数,是计算机处理数据的基本单位,微机的存储器是由一个一个存储单元构成的,每个存储单元就是一个字节,因此存储器是以字节为单位编址的,存储容量的大小也是也字节数来度量的。

字(Word)的概念: 计算机处理数据时,CPU通过数据总线一次存取,加工或传送的数据。通常由一个字节或者多个字节构成.

字长(Word Length)的概念: 字的二进制的位数.字长是计算机一次所能处理的实际位数的长度,所以字长是衡量计算机性能的一个重要标志。通常说的计算机是多少多少位的位就是指的字长.

(3).小数点不能直接标出,需要按一定方式约定小数点的位置.

2.符号数的表示方法:

为了解决带符号的机器数在机器中运算时的问题,引出了机器数x的三种不同的编码形式。

设x=x(1)  x(2)  x(3) ... x(n-1) ,其中x(i)为一位二进制数,i=1,2,...,(n-1),

(1).原码

若x>=0 时, [ x ]原=0 x(1)  x(2) ....x(n-1);

若x<=0时,  [ x ]原=1 x(1)  x(2) ....x(n-1);

根据定义,有

[+0]原=0 0 0 0 0..

[-0 ]原=1 0 0 0 0...

优点:表示简单,与真值转换方便;

缺点:运算时需要判断符号,增加机器的运算时间;

(2)反码

若x>=0 时, [ x ]反=0 x(1)  x(2) ....x(n-1);

若x<=0时,  [ x ]反=1 x(1)  x(2) ....x(n-1);

根据定义,有

[+0]反=0 0 0 0 0..

[-0 ]反=1 111111..

(3).补码

若x>=0 时, [ x ]补=0 x(1)  x(2) ....x(n-1);

若x<=0时,  [ x ]补=[ x ]反+1;

根据定义,有

[+0]补=0 0 0 0 0..

[-0 ]补=00 0 0 0...

优点:补码便于计算机运算;

3.补码的运算

(1).若x为负数,则[ [x]补 ]补=[ x ]原

(2).=+
    该式的语言表达是两个N位二进制数之和的补码 等于两数补码之和。
    当带符号两数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。


(3).=+
    该式表明,求可以用与相加来实现。
    这里的 ,即对减数进行求负操作,也就是对补码表示的数(无论是正数还是负数)求得其相应的用补码表示的负数(如果原来是正数,求负后得负数,原来是负数,求负后得正数)。一般称已知 求得的过程叫变补或求负。两个带符号数采用补码表示时,减法运算可以通过“变补相 加法”来实现,即 - = +

注:[ -y ]补的求法: 对[ y ]补 "连同符号位在内一起变反加1";

4.补码运算中的溢出的解决方法

(1).使用双符号位.

(2).使用进位

5.定点数和浮点数

(1).定点数就是小数点的位置在数中固定不变.

两种表示方法:定点纯小数和定点纯整数;

(2).浮点表示法;

N=2p S

其中N表示浮点数或者实数,

S表示N的尾数,用带符号的定点小数表示,一般用原码表示;尾数长短规定了数字的有效位数(精度)

2表示N的底数,

p表示指数,称为阶码,用带符号的整数,一般用补码表示;阶码的大小规定了数的范围;

浮点数的表示形式

阶符 阶码 尾符 尾数;

阶符表示阶码的符号位,0表示为正,1表示为负;

尾符表示位数的符号位,0表示为正,1表示为负;

规格化的浮点数: 满足 0.5<= S <1 的限制;

(3) IEEE的浮点数表示方法

6.BCD码

BCD码:
  BCD(Binary Coded Decimal)是用二进制编码表示的十进制数(见表3.3),十进制数采用0~9十个数字,是人们最常用的。在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码 ②非压缩的BCD码

  压缩的BCD码:
  压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串BCD码来表示。例如,十进制数59表示成压缩的BCD码为0101 1001,十进制数1946表示成压缩的BCD码为0001 1001 0100 0110。

  非压缩的BCD码:
  非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。例如,十进制数78表示成压缩的BCD码为0000 0111 0000 1000。

  从键盘输入数据时,计算机接收的是ASCII码,要将ASCII码表示的数转换成BCD码是很简单的,只要把ASCII码的高4位清零即可。

你可能感兴趣的:(微机原理与应用)