100 likes | 177 Views
内存由若干存储单元构成,一存储单元由若干字节构成。 若,一字节存放一个数据: 例、 0 0 0 0 0 1 1 0 ( 一字节有八位二进制位构成) 最高位 最低位 若,两字节存放一个数据: 例、 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 最高位 最低位 表示有符号数时,最高位作为符号位 0 ── 正 1 ── 负.
E N D
内存由若干存储单元构成,一存储单元由若干字节构成。 若,一字节存放一个数据: 例、0 0 0 0 0 1 1 0 (一字节有八位二进制位构成)最高位 最低位 若,两字节存放一个数据: 例、 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1最高位 最低位 表示有符号数时,最高位作为符号位 0 ──正1 ──负 .
例1、无符号数 10000001, 值=27+20=129 有符号数 10000001,值=?与采用的机器码有关 一、数的定点与浮点表示二、数据的机器码表示
一、数的定点与浮点表示 计算机处理的数据可能既有整数部分又有小数部分,必须约定小数位置,可以有两种约定:定点和浮点 例、(1011.10)2=(10111.0×2-1)2 =(1.01110×211)2 对于二进制数N: N=±S×2±J尾符(或数符) 尾数 底 阶符 阶码 J固定不变 ── 定点表示J可变 ── 浮点表示 ⒈ 定点表示 一般取 J=0 , 则 N=±S 符号 尾数 “符号”占一位,0表示正、1表示负.
例、+110101 0 0 1 1 0 1 0 1符号 尾数 小数点 +0. 001 0 0 0 1 0 0 0 0符号 尾数 •小数点不占用二进制位,隐含在某固定位置上。隐含在数的最低位之后,称定点整数;隐含在符号位之后、数的最高位之前,称定点小数。 •定点数表示范围受限。 ⒉ 浮点表示 • 基本思想:把数的有效数字和数的表示范围分开表示 阶符 阶码 尾符 尾数表示范围 有效数字 ( 或有效数字在前、表示范围在后。)
例、x=(+101101)2=(+0.101101×2110)2 表示为 0 110 0 101101 • 浮点数的底不出现在浮点数中,一般隐含为2。小数点也不出现在浮点数中,约定 尾数一定是纯小数 阶码一定是纯整数 .
二、数据的机器码表示 • 机器码常用的有原码、反码、补码。 • 真值: 一般书写表示的数值, 或者说机器所代表的实际值. • 机器数:表示一个数值数据的机内编码.一般采用补码形式 ⒈ 原码: 真值为:x=±x1x2 …xn原码:[x]原= 0 x1x2 …xn ,x ≥ 0 1 x1x2 …xn ,x ≤ 0 例、(-5)10 =(-0000101)2/*以下例子均以一字节存一个数为例*/ [+5]原= 00000101 [ -5]原= 10000101 [+0]原= 00000000 0的正负有区别 [ -0]原= 10000000 前例1、∵ (10000001)原= -1 ∴若10000001为原码, 则其真值=-1 .
⒉ 反码: 真值: x=±x1x2 …xn 若 xi=1 , 则 xi=0 ( xi 取反)xi=0 , 则 xi=1 [x]反= 0 x1x2 …xn ,x ≥ 0 或 [x]原=x0x1x2 …xn 1 x1x2 …xn ,x ≤ 0 [x]反= [x]原 , x ≥ 0 x0x1x2 …xn , x ≤ 0 例、[+5]反= 00000101 [ -5]反= 11111010 [+0]反= 00000000 0的正负有区别 [ -0]反= 11111111 前例1、∵ (10000001)反=(11111110)原=(-1111110)2=(-126)10 ∴若10000001为反码, 则其真值=-126 .
⒊ 补码 ⑴ 模: 例、16 mod 12=4 (16点为下午4点) 12就称为模数或称模12 在模 n下的意义:x=n+x 例 x=4时, 4+12=4 例 x=-5时, -5+12=-5 即 7=-5 (mod 12) 7和 -5对于12互为补码 若x<0时, 正数“加上负数”可用“加上该负数对应的补码(正数)”实现: 例9+(-5)=9+7 (mod 12) 在计算机中,n位二进制数的模为 2n .
⑵补码 真值: x=±x1x2 …xn[x]补= 0 x1x2 …xn ,x ≥ 0 或 [x]反=x0x1x2 …xn M+x ,x ≤ 0 (M为模)[x]补= [x]反 , x ≥ 0 [x]反+1 , x ≤ 0(即末位加1) 例、[+5]补= 00000101 [ -5]补= 11111010+1=11111011 [+0]补= 00000000 0的补码是唯一的 [ -0]补=11111111 +1=00000000 前例1、∵ (10000001)补=(10000000)反=(11111111)原 = -127 ∴10000001为原码, 则其真值=-127
• 但补码比反码、原码表示的数据多 例、 [-128]补=10000000 ∵八位二进制数的模 M=28 而 [x]补= M+x ,x ≤ 0 (M为模) ∴[-128]补=[-10000000]补=28 + (-10000000) =10000000