第2章 计算机中数据信息的表示和运算-浮点表示
- 格式:ppt
- 大小:215.00 KB
- 文档页数:30
计算机系统导论——读书笔记——第⼆章信息的表⽰和处理第⼆章信息的表⽰和处理2.1 信息存储2.1.1 ⼗六进制2.1.2 字数据⼤⼩2.1.3 寻址和字节顺序1.地址:对象所使⽤的字节中最⼩的地址2.⼤端法:最⾼有效字节在前⼩端法:最低有效字节在前(⼤多Intel兼容机使⽤)3.发送⽅机器(内部代码)——>⽹络应⽤程序(⽹络标准)——>接收⽅机器(内部代码)4.⼩程序——打印程序对象的字节表⽰1 #include <stdio.h>2using namespace std;34 typedef unsigned char * byte_pointer;//定义类型:指向unsigned char的指针56void show_byte(byte_pointer start, size_t len){7 size_t i;8for(i = 0; i < len; ++i)9 printf(" %.2x", start[i]);//%.2x表⽰整数必须⽤⾄少两个数字的⼗六进制格式输出10 printf("\n");11 }1213void show_int(int x){14 show_byte((byte_pointer) &x, sizeof(int));15 }1617void show_float(float x){18 show_byte((byte_pointer) &x, sizeof(float));19 }2021void show_double(double x){22 show_byte((byte_pointer) &x, sizeof(double));23 }2425void show_pointer(void * x){//void*是特殊类型的指针,没有相关联的类型信息26 show_byte((byte_pointer) &x, sizeof(void *));27 }2829int main(){30int x;31float y;32double z;33while(scanf("%d %f %lf", &x, &y, &z)){34 show_int(x);35 show_float(y);36 show_double(z);37 show_pointer(&x);38 show_pointer(&y);39 show_pointer(&z);40 }41return0;42 }输⼊111-1-1.0-1.0123451.0011.001输出01 00 00 0000 00 80 3f00 00 00 00 00 00 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00ff ff ff ff00 00 80 bf00 00 00 00 00 00 f0 bf98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 0039 30 00 00c5 20 80 3f6a bc 74 93 18 04 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00我的电脑是MaxOS,可以看出它是64位系统,采⽤⼩端法表⽰5.可以通过在终端(mac是terminal,windows是命令⾏⼯具)执⾏命令man ascii得到⼀张ASCII字符码表,回车后运⾏结果如下ASCII(7) BSD Miscellaneous Information Manual ASCII(7)NAMEascii -- octal, hexadecimal and decimal ASCII character setsDESCRIPTIONThe octal set:000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 delThe hexadecimal set:00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 738 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f delThe decimal set:0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 756 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 delFILES/usr/share/misc/asciiHISTORYAn ascii manual page appeared in Version 7 AT&T UNIX.BSD June 5, 1993 BSD(END)2.1.4 表⽰字符串1.⼗进制数字‘y’的ascii码正好是0x3y2.strlen(str)函数不计算终⽌的空字符(ascii码为0x00)3.字符编码⽅式:(1)ASCII (American Standard Code for Information interchange)(2)Unicode (Unique Code)(3)UTF-8 / UTF-16 / UFT-32 (Unicode Transformation Format)2.1.5 表⽰代码2.1.6 布尔代数(Boolean Algebra)简介1.布尔运算&对|有分配律:a&(b|c) = (a&b)|(a&c)布尔运算|对&有分配律:a|(b&c) = (a|b)&(a|c)2.位向量:长度为w,由0和1组成的串应⽤:表⽰有限集合/压位运算(例:[01101010]表⽰集合{1,3,5,6}),位向量掩码/屏蔽信号3.布尔环(Boolean ring),类似于整环/整数环“加法”逆元:^类似于+; 每个整数x有加法逆元-x使得x+(-x)=0,类似地,每个布尔元素a都有“加法逆元”a使得a^a=0; 有趣的性质:(a^b)^a=b 1//这是⼀个不需要第三个量的交换函数,不过它并没有性能上的优势2void inplace_swap(int *x, int *y){//*x = a, *y = b3 *x = *x ^ *y;//*x = a^b, *y = b4 *y = *x ^ *y;//*x = a^b, *y = a5 *x = *x ^ *y;//*x = b, *y = a6 }2.1.7 C语⾔中的位级运算:&, |, ^, ~2.1.8 C语⾔中的逻辑运算: &&, ||, !2.1.9 C语⾔中的移位运算:>>, <<1.逻辑右移(⾼位补0,⽆符号数进⾏逻辑右移)算数右移(⾼位补符号位,有符号数进⾏算数右移)(1)初级运算符[]().->(2)单⽬运算符(3)算数运算符(4)移位运算符(5)关系运算符(6)位级运算符(7)逻辑运算符(8)赋值运算符2.2 整数表⽰2.2.1 整形数据类型2.2.2 ⽆符号数的编码(unsigned)2.2.3 补码编码(two's-complement)1.<limits.h>库:INT_MIN, INT_MAX, UINT_MAX<stdint.h>库:intN_t, UintN_t (t = 16,32,64等)(我在xcode上没有include这两个库也能直接使⽤INT_MIN、int32_t等)2.有符号数的表⽰⽅法(1)补码(two's-complement):最⾼位权重为-2^(w-1)(2)反码(ones' complement):最⾼位权重为-(2^(w-1)-1)(3)原码(sign-magnitude):最⾼位为1表⽰所有其他位权重为负注:(2)(3)中0的表⽰法不唯⼀,有+0和-0两种2.2.4 有符号数和⽆符号数之间的转换(可能)改变数值,但不改变位表⽰1.补码转换为⽆符号数(w位):TMin <= x < 0, T2U(x) = x + 2^w0 <= x <= TMax, T2U(x) = x2.⽆符号数转换为有符号数(w位):0 <= x <= TMax, U2T(x) = xTMax < x <= UMax, U2T(x) = x - 2^w2.2.5 C语⾔中的有符号数和⽆符号数1.数字常量默认为有符号数,加上后缀u或U可创建⽆符号数常量2.类型转换的⽅式:(1)显式:强制类型转换(2)隐式:不同类型变量间赋值3.%d有符号⼗进制,%u⽆符号⼗进制,%o⼋进制,%x⼗六进制4.C语⾔对于同时包含有符号数和⽆符号数的表达式,会隐式地将有符号数转换为⾮负的⽆符号数 1/*2这是⼀个测试函数3注:TMin写成-2147483647-1⽽⾮-21474836484是因为limits.h中定义INT_MIN=-INT_MAX-1,以规避某些奇怪的现象5*/6 #include <cstdio>7using namespace std;89int main(){10 printf("-1 < 0u = %d\n", -1 < 0u);11 printf(" -1 = 0x%x \n", -1);12 printf(" 0u = 0x%x\n\n", 0u);1314 printf("2147483547 > (int)2147483648u = %d\n", 2147483547 > (int)2147483648u);15 printf(" 2147483547 = 0x%x \n", 2147483547);16 printf(" (int)2147483648u = 0x%x\n\n", (int)2147483648u);1718 printf("-2147483647-1u < 2147483647 = %d\n", -2147483647-1u < 2147483647);19 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);20 printf(" 2147483647 = 0x%x\n\n", 2147483647);2122 printf("-2147483647-1u < -2147483647 = %d\n", -2147483647-1u < -2147483647);23 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);24 printf(" -2147483647 = 0x%x\n\n", -2147483647);25return0;26 }运⾏结果如下-1 < 0u = 0-1 = 0xffffffff0u = 0x02147483547 > (int)2147483648u = 12147483547 = 0x7fffff9b(int)2147483648u = 0x80000000-2147483647-1u < 2147483647 = 0-2147483647-1u = 0x800000002147483647 = 0x7fffffff-2147483647-1u < -2147483647 = 1-2147483647-1u = 0x80000000-2147483647 = 0x800000012.4 浮点数2.4.1 ⼆进制⼩数2.4.2 IEEE浮点表⽰1.表⽰形式:(1)符号(sign)s: 表⽰+-(2)尾数(significand)M:⼆进制⼩数,取值范围为[1,2)或[0,1)(3)阶码(exponent)E:对浮点数加权,权重为2的E次幂2.编码:s编码符号sign s,exp编码阶码exponent E,frac编码尾数significand M3.三种情况(1)规格化的(noemalized): exp!=00...0 && exp!=11 (1)i. 阶码 E = exp - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 1.xx...x = 1.frac的位(隐含的以1开头的表⽰)(2)⾮规格化的(denormalized): exp == 00 0i. 阶码 E = 1 - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 0.xx...x = 0.frac的位iii.注意:0.0有两种表⽰⽅法+0.0和-0.0,符号位分别为0或1,其他位全部为0(3)特殊值: exp == 11 (1)i. ⽆穷:frac = 00...0, s=0或1表⽰+∞或-∞,能够表⽰溢出的运算结果,如x/0 ii. Nan(not a number): frac != 00...0, 表⽰⾮实数的运算结果,如根号-1,∞-∞4.三种情况的数字分布⾮规格化数字的阶码定义为E=1-bias可以补偿⾮规格化的尾数没有隐含的开头1,有助于数字表⽰的平滑转变;否则,在绝对值最⼤的⾮规格化数字(其⼆进制表⽰为0 00...0 11...1)和绝对值最⼩的规格化数字(其⼆进制表⽰为0 00...01 00...0)之间将存在跳跃2.4.3 数字⽰例1. 处理正浮点数时,若按照⽆符号整数解释他们的⼆进制表⽰,则可以发现它们的⼤⼩顺序不变;负浮点数只需要倒序。
第二章数据在计算机中的表示综合练习题参考答案一、1 、计算机中的数有定点表示法和浮点表示法两种表示方法。
2 、原码的编码规则是:最高位代表符号,其余各位是该数的尾数本身。
3 、补码的编码规则是:正数的补码与其原码相同,负数的补码是将二进制位按位取反后在最低位加 1 。
4 、反码的编码规则是:正数的反码与其原码相同,负数的反码是将二进制位按位取反。
5 、一种记数制允许选用基本数字符号的个数称为基数。
6 、整数部分个位位置的序是 0 。
7 、通常把表示信息的数字符号称为数码。
8 、八进制数的基数是 8 。
9 、 7402.45Q 的十六进制数是 F02.94H 。
10 、数在计算机中的二进制表示形式称为二进制数。
11 、在小型或微型计算机中,最普遍采用的字母与字符编码是 ASCII 码。
12 、计算机一般都采用二进制数进行运算、存储和传送,其理由是运算规则简单,可以节省设备。
13 、十进制整数转换成二进制的方法是除 2 取余法,小数转换成二进制的方法是乘 2 取整法。
14 、二进制的运算规则有加法规则、减法规则、乘法规则和除法规则。
15 、目前常见的机器编码有原码、反码和补码。
16 、对 -0 和 +0 有不同表示方法的机器码是原码和码。
17 、 8 位寄存器中存放二进制整数,内容全为 1 ,当它为原码、补码和反码时所对应的十进制真值分别是 -127 、 -1 、 -0 。
18 、在二进制浮点数表示方法中,阶码的位数越多则数的表示范围越大,尾数的位数越多则数的精度越高。
19 、对于定点整数, 8 位原码(含 1 位符号位)可表示的最小整数为 -127 ,最大整数为 127 。
20 、采用 BCD 码, 1 位十进制数要用 4 位二进制数表示, 1 个字节可存放 2 个 BCD 码。
21 、对于定点小数, 8 位补码可表示的最小的数为 -1 ,最大的数为 1-27 。
22 、在原码、补码、反码中,补码的表示范围最大。
红色标记为找到了的参考答案,问答题比较全,绿色标记为个人做的,仅供参考!第一章计算机系统概述1. 目前的计算机中,代码形式是______。
A.指令以二进制形式存放,数据以十进制形式存放B.指令以十进制形式存放,数据以二进制形式存放C.指令和数据都以二进制形式存放D.指令和数据都以十进制形式存放2. 完整的计算机系统应包括______。
A. 运算器、存储器、控制器B. 外部设备和主机C. 主机和实用程序D. 配套的硬件设备和软件系统3. 目前我们所说的个人台式商用机属于______。
A.巨型机B.中型机C.小型机D.微型机4. Intel80486是32位微处理器,Pentium是______位微处理器。
A.16B.32C.48D.645. 下列______属于应用软件。
A. 操作系统B. 编译系统C. 连接程序D.文本处理6. 目前的计算机,从原理上讲______。
A.指令以二进制形式存放,数据以十进制形式存放B.指令以十进制形式存放,数据以二进制形式存放C.指令和数据都以二进制形式存放D.指令和数据都以十进制形式存放7. 计算机问世至今,新型机器不断推陈出新,不管怎样更新,依然保有“存储程序”的概念,最早提出这种概念的是______。
A.巴贝奇B.冯. 诺依曼C.帕斯卡D.贝尔8.通常划分计算机发展时代是以()为标准A.所用的电子器件B.运算速度C.计算机结构D.所有语言9.到目前为止,计算机中所有的信息任以二进制方式表示的理由是()A.节约原件B.运算速度快C.由物理器件的性能决定D.信息处理方便10.冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是()A.指令操作码的译码结果B.指令和数据的寻址方式C.指令周期的不同阶段D.指令和数据所在的存储单元11.计算机系统层次结构通常分为微程序机器层、机器语言层、操作系统层、汇编语言机器层和高级语言机器层。
层次之间的依存关系为()A.上下层都无关B.上一层实现对下一层的功能扩展,而下一层与上一层无关C.上一层实现对下一层的功能扩展,而下一层是实现上一层的基础D.上一层与下一层无关,而下一层是实现上一层的基础12.指令流通常是()A.从主存流向控制器B.从控制器流向主存C.从控制器流向控制器D.从主存流向主存13.以下叙述中正确的是()A.寄存器的设置对汇编语言程序是透明的B.实际应用程序的预测结果能够全面代表计算机的性能C.系列机的基本特征是指令系统向后兼容D.软件和硬件在逻辑功能上是等价的14.存储A.__程序____并按B.__地址____顺序执行,这是冯•诺依曼型计算机的工作原理。
第2章数据的表示南京大学计算机系多媒体技术研究所袁春风数字化信息编码数字系统定浮点表示非数值数据的编码表示逻辑数据多媒体信息二进制信息的计量单位对所下的定义是数据是对事实概念或指令的一种特殊表达形式这种特殊的表达形式可以用人工的方式或者用自动化的装置进行通信翻译转换或者进行加工处理在计算机内部数字文字图画声音活动特殊的表达形式就是二进制编码形式故在计算机系统中所指的数据均是以二进制编码形式出现的数值型数据非数值型数据指数字类数据它可用来表示数量的多少可以比较其大小非数值型数据包括字符型数据表示视频等的多媒体数据以及逻辑数据是对人有用的数据这些数据将可能影响到人们的行为与决策客观存在的事实概念或指令的一种可供加工特殊表达形式而信息却强调对人有用信息处理实质上就是由计算机进行数据处理的过程也即是通过数据的采集和输入有效地把数据组织到计算机中由计算机系统对数据进行相应的处理加工如存储建库转换合并分类计算统计汇总传送等操作最后向人们提供有用的信息这个全过程就是信息处理一般情况下不严格区分数据和信息媒体媒介媒质指承载信息的载体感觉媒体使人类听觉视觉嗅觉味觉和触觉器官直接产生感觉的一类媒体如声音文字图画气味等表示媒体为了使计算机能有效加工处理传输感觉媒体而在计算机内部采用的特殊表示形式即声文图活动图像的二进制编码表示存储媒体用于存放表示媒体以便计算机随时加工处理的物理实体如磁盘光盘半导体存储器等表现媒体用于把感觉媒体转换成表示媒体表示媒体转换为感觉媒体的物理设备前者是计算机的输入设备如盘扫描仪话筒等后者是计算机的输出设备如显示器打机音箱等传输媒体用来将表示媒体机的通信载体如同轴电缆光纤电话线等是编码单的号对大量的组合基本符和要素例如用10个阿拉伯数字表示数值电报进制数字表示汉字等等都例子计算机内部处理的所有信息都是了的数据是一种表示媒体信息就是对感觉媒体信息进行定时采信息转换为计算机中的离散信息然信息进行二进制编码计算机内部采用二进制编码为什么计算机内部的数据若定的值即在数到其对应的点则称其为数值数据定数值数据的值的进位计数制定浮点表示和数的编码表示数值数据的表示方大类直接用二进制数表示简码一般地任意进制数其值应为! " 可以是! " # $ % & ' ( )个数字符号一个 ! 数它数字符的个数 ! 称为位上的权算时每位计位进一逢十2只号01算时采用如二进制数表的实际值是(+ 0x21+ 一般地一个二进制数B=bbn其值应为的数字说在个数字系统中若号0 12R-1表示位上的数字则R数制或称R进制数字系统R数字系统的基采 逢算规则对于i其位上的i在计算机系统中常种基本除基取余上乘基取整上除基取余上乘基取整上除基取余上乘基取整上的小数部分总0 此值(13.724) (2B.5E) (0. (11进制阅读太长书写阅读均不方便八进制数却像进制数一样简练易写易记易读虽然使用二进制一种计数制但序调序阅读码时的方便人们经常进制或二进制什么问题在机器内部的表示问题1定点表示约定小数点的位置定在最左右边纯小数形式小数点左边即:0.xx x对于存放在一个存器中的定点小数X其表示范围为-n|X|1-2-n数形式小数点右边即:xx对于存放在一个位寄X其表示范围为0|X|21在计算机内部只能表示一定范围限数小于能表示的最小数则计算机把它当0处理大于能表示的最大数则发 溢小用定点数来进行运出大计算机的表数范围一般采用浮点表示法2浮点表示为采用浮点表示小用浮点表示可定点小数2-n|X|1数0|X|2一个数 都可以表示成阶码定点整数位数决定其表数范围数定点小数位数精度致范围基数隐含约定一般取绝对值最小的数是如下形式的数0.0...01xR-11 (1)绝对值最大的数的形式应为0.11...1xR11 (1)虽然扩范围但并没有增加数值的个数位编码个数什么问题在机器内部的表示问题一个浮点数可用一个定点整数和一个定点小数来表示因此只需要考虑定点数的编码表示有来表示负号样符样其1这种处理称为数字化一般定正号1表负号数值数据在计算机内部编码表示的数称为机器数而的值即原的数称为设值为= X X 1X 当数时= 0 . X X n当为定点小数时数字化编码后的机器数表示为X = Xn研究数值数据的编码问题就是解决机器数Xi问题是数的符位一般定数时X0X=Xi =Xi-n数时X1通的编码表示原码补码反码时对于不的编码方式X的取值有不的规定规则符值的数值故也称定点数[X n + |X-2T0n码数值部分的位数小数[XT +|XT| -T种表示形式[+0]=0 001 00特点与系直观方便故与用算比较便但规则复杂算要判是两数相减若是则必须判对值大小并断结果决定结果符号2补规则符码故也称符法1模运机器数的位数有限n的数所以算过程中可能的数即出现用n 无法表示的情况此时计算机一般位舍弃高位样会种结果剩下的位数不能正确结果也即是运的一部分这种情况下意着运出了计算机能表达的范围我此时现象表达计算结果也即并不影响其结果结果呢一种处理n然丢去商保留的操作这模运 算中若A B M系A=B+K*M K 数则记为A B mod M即A B以M数相同故称B和A为模同余也就是说在一个模运系统中一个数与它除以模到的余数是等的问题举例 系统其2定钟 点要向点则拨法倒拨格1格186mod 12所以在系统中10-4 10+8(mod即-4 12) 8是-4对的补码同样有-3 9mod 2-5 7mod 2等等述例子与同余的概念可得出如下的结论定的模某数减去小于模一数总可以用另一数绝对值之差代替 这实际上就是为原因补算这来后就可以不用象符号对值大小等了例10-4=0+8=6 mod 22 算系统相当的算盘9828-928=9828+(=9828+8072==7900mod 42补根据系可法一个该之差即某负码为[X| (mod M)n其中符位数值部分位码表示的定义如下数[XT ]补=2| -2XT0mod 2n小数[X]| -1XT0mod 2的表示是一的0=0 0定义0 (n-n)看数和小数内对于整码有[-码有[-上码中的 表示的只其所在位置所以实际上码小数表示与结果同都是符1数值部分为0 -2分别补码小数和码整的最小负数6求负码表示解[-0.0110=10负数的求法求前述例子单方法求 符号1其取反后末尾加1所得值的简便方法 若符1则真负其数值部分的位由补各位后末尾所得补码法取反末尾即可 最小负出即最小后的码表示不存在知X0求解[X+2-7T知[X0求T 解X= -110T知[X0求解[-X=03变#这种4因此码#目的便于结果是出#采用双位表示位右定义变形1其中符位数值部分位则变码表示的定义如下0mod 21定点数[X1-|X|-2XT0mod 4定点小数[X|X| -1XT知X 11假位求变补解[X T ]变补11= 01知X 位T ]变补解[X =4-0.3反负数的码表示符1数值部分求反也即在相应的补基础减1定义码的位数为n其中符位数值部分位码表示的定义如下=(2数[XT反0mod 2n-1T小数[X0mod 2-2T零有种01注1从出反补码若是二进制数即R=2那么当为n位定点数编码(即m=0)时模为21为m位定点小数编码(即n=)时模(2-2 ) ) 2反下进行的所以) 0 (mod R即R)这意着若运即最)就须把它加到去这循环进位举例用45= :9828.928..45)=7900 mod4编码的总1机器数与0其数值部分值的数值部分1数值位的表示码同真值的数值位码真取反末1码真取反由编码值则反的过程只要位 1 转换成 负号即可2零法零3加补码和待可以和数值位一算原码和代处理4表数原码和是对称的假位数为n即编码位时原码的表数都是整数21小数1-n的表示范围不对称负数表示的范围正数宽能多表示一个最小负数-2n或5移"对于的定点数应采用算术位方式也即对数值部分位而符号位不动"在计算机内部移位器中进行移定所以移变一位意味倍即移位后的/2右出高相应的位数移出时可能使有效数字失所以要考虑入方式一位意味着原倍即倍左出低相应的位数后数值若干倍因此会发出如下左移高出末0移时发出右移高0低出移舍入操作码左移高出末0移出非符时发出右移高符低出移舍入操作码左移高出末符移出非符时发出右移高符低出移出时进行舍入操作6填充在计算机内部有时个数此要进行处理对于定点小数在位进行数在符位后的数值位进行定点小数在0定点数符变在数的符号0定点小数在0定点数符变在数的符号所的位数用来表示数值时该数一般在全部是合下可以位使用数表示例算符了一位符号位所以在字长的情况下数码补码等不分它的编码形式就是一般的二进制形式数的小数点在数的最后时则该数例如最大的11111111B其值为255一个时则该号小数例如最大的小数形式也是B 其值为1-2-8入浮点数的表示数或纯小数并小定点数表示的位编码其中一位符位小数而般的实数此外其表数比定点数多码表示数也可以是数当时必须阶比较并使相等为化比较操作使涉符可对加上一个正数称为置数使所有阶都数这就是移码表示移码的定义设 阶所移码位数为 则为偏则, .格化数的位数表示数的有效数位有效数位多数据高为了在浮点数运算过程中尽保留效数字的位数使有效数字占满尾数数位必须经常格化操作数字即则则 格式补码表示数则规为尾位和最高位码种数则当结果的形式时需移阶减1直到止这个过程称为 左规数则当结果的形式时并不一定出应位1然判断阶出这个过程称为右组成数符阶码尾浮点数格式如下位数符位 偏 $ % " 位$码小数表示的进制数此种浮点数形式解因 $ 所以即位数符位 码偏位 码规格化一位总是 故存即有 位但位数据码是对称的故对称即解因浮点数形式表示为111 000单形式48838880H当运码过小时的而浮点数分的越远稀疏浮点数的情况下其多则尾少即表数大则精度差数变稀疏数的大小对范围的影响大则范围大但精度变低数变稀疏格式格式格式范围精度扩展为码表示偏为 因 则码为 而全 用来表示一些特殊值故不能表示到 最大能是 这小了若 则 ! 故最大 表数范围增大码表示规为的格式。