计算机组成原理

二:数据的表达和运算

数据表示

进制英文简写
二进制B
八进制O
十进制D
十六进制H

   每一位十六进制数与四位二进制数对应,每一位八进制数与三位二进制数对应。

注意:并不是所有十进制小数都可以准确的转换为二进制小数。 

真值: 带“+”“-”符号的数。(机器数的实际值)

​机器数​​:计算机中用于表示数值的二进制形式,其特点包括固定位数、符号处理和特定编码规则。

        常见编码方式​:原码,反码,补码,移码.

  • 原码:总共有n+1位。最高位是符号位,0表示正号,1表示负号。其余n 为位表示数值的绝对值。

  • 反码:正数的反码与原码相同,负数的反码则是原码数据位按位求反。

  • 补码:正数的补码与其原码和反码相同,负数的补码则是等于其反码的末位加1。)(补码可以简化计算机运算部件的设计)

  • 移码:在补码的基础上取反符号位。(只能表示整数),用来比较大小


n+1位机器数:1位符号位+ n位数值部分。

定点小数:

        表示范围 -(1- 2^-n) ~ 1- 2^-n(总共n+1位)

    


定点整数:

表示范围 :-(2^n -1 ) ~ 2^n -1(总共n+1位)


(补充)补码原理:

用加法代替减法,用补码计算的时候,符号位也进行运算

首先引入:mod (模)的概念

mod m ,会将所有的整数分为【0,m-1】m个数

mod 后想等的数(是等价的)可以相互替换,

所以用补码来代替该数进行运算不改变结果。

eg:

(10+9) mod 12 =7 ,(10+(-3)) mod 12 =7,

  •          所以:用9 和(-3)去进行运算得到的结果都是一样的。(因为在计算机内计算后的值也是需要mod 的,因为高位要舍弃)

    所以对负数的运算可以转换成正数(该负数的补码)

注:因为字长有限:所以高位肯定要舍去,实现的方式就是mod。

计算机 eg机器字长 n,可以看成对所有数据都是mod 2 ^n (将所有数映射到【0,2^n -1】内)

原反补移表示范围

因为补码和移码的+0和-0 表示一样,所以负值的范围要大1. 如下图所示:

从图中也可以看出,移码从小到大,也是其对应真值从下到大。移码大小和对应真值正比,所以比较大小都是用移码比较


移位

算数移位

(算数移位:看作有符号数)

   左移相当于×2;右移相当于÷2,(2是基数)

由于位数有限,因此有时候无法用算数移位精确地等效乘除法       

        原码算术移位:左移丢1,运算出错;右移丢1,影响精度。

逻辑移位

逻辑移位:将操作数看作无符号进行操作,都是补0

溢出

逻辑左移 还是 算术左移,在某些情况下都可能改变符号位。,符号位不参与移位,但符号位上的数字是参与移位的

补码左移动时候:符号参与移位,如果符号位,如果移动后符号位的地方的数变了,说明溢出了。

移除的数和符号位的数不同时:就发生了溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值