计算机系统
深入了解计算机系统
小虫v
这个作者很懒,什么都没留下…
展开
-
深入了解计算机系统课后习题
关于有符号数与无符号数的建议有符号数到无符号数的隐式类型转换导致了某些非直观的行为。float sum_elements(float a[], unsigned length) { int i; float result=0; for(i=0;i<=length-1;i++) result += a[i]; return result; }当参数length等于0时,运行这段代码应该返回0.0,但实际上,运行时会遇到一个内存错误。为什么会发生这样的错误?从.原创 2021-05-26 22:22:22 · 1124 阅读 · 0 评论 -
深入了解计算机系统数据编码深入理解
无符号数的编码用函数B2Uw(Binary to Unsigned)表示。原理:无符号数编码的定义对向量→X=[Xw−1,XW−2,...,X0]:\underset{X}{\rightarrow}=[X_{w-1},X_{W-2},...,X_{0}]:X→=[Xw−1,XW−2,...,X0]:B2Uw(→x)=∑i=0w−1xi2iB2U_w(\underset{x}{\rightarrow}) = \sum_{i=0}^{w-1}x_i2^{i}B2Uw(x→)=i=0∑.原创 2021-05-26 22:22:07 · 962 阅读 · 1 评论 -
加减运算和溢出判断
原创 2021-05-22 14:14:10 · 128 阅读 · 0 评论 -
移位运算
计算机中有大端小端两种存储模式,进行循环移位就可对它们之间高字节和低字节进行转换。在进行超过8位的加法,运算器包含一个进位,记录之前低位运算有没有进位,然后在更高字节运算得出正确的结果。...原创 2021-05-22 11:35:56 · 152 阅读 · 0 评论 -
定点数表示
定点数:小数点位置固定浮点数:小数点位置不固定。无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值技巧:由[x]补 快速求 [-x]补 的方法符号位、数值位全部取反,末位+1...原创 2021-05-21 19:37:20 · 105 阅读 · 0 评论 -
校验码
奇偶校验码海明码循环冗余校 验码原创 2021-05-21 19:11:31 · 66 阅读 · 0 评论 -
字符与字符串
48 ~ 50 前4位都是0011 后4位对应BCD码中的8421码 例如 1 对应 0011 0001区位码 :94 * 94 的矩阵 把文字存进对应的区的某一个位在ASCII码中0~31中为控制、通信字符,当区位码两处都处于0 ~ 31之间就可能会造成信息交换时发生冲突,防止这种冲突,故区位码都加上32形成国标码。同时为了不与ASCII中的造成冲突,故加上16进制的 80H ,对应的就是1000 0000 这样8位中如果是汉字,最高位为1,就与127种ASCII码兼容了。一般汉字是两..原创 2021-05-20 22:43:26 · 105 阅读 · 0 评论 -
BCD码
BCD码:用二进制编码的十进制4位二进制能表示24-1个状态(即0~15)但BCD码只用其中的0 ~ 9,产生6种沉余。8421码: 位数 0 0 0 0 权重 8 4 2 1用8421码如何进行加法 例如上面的5 + 8 = 13 产生 1101 无法映射在8421码内,只需要加上6(0110)得到的结果 1 0011 然后再其前补3个0 ,即得到 0001 0011对应13的BCD码再例如: 9 + 9 = 18 1001 + 1001 =原创 2021-05-20 21:47:21 · 382 阅读 · 0 评论 -
王道-进制
原创 2021-05-20 20:52:34 · 81 阅读 · 0 评论 -
定点补码乘法运算
原创 2021-05-20 20:48:09 · 298 阅读 · 0 评论 -
原码的乘法
十进制 0.985 0.985 * 0.211 * 0.211 --------- ---------- 985 0.000985 985 0.00985 1970 0.1970 ---------- ---------- 0.207835 0.207835l为什么要原创 2021-05-20 12:42:40 · 555 阅读 · 0 评论 -
整数乘法运算
在高级语言中,两个n位整数相乘得到的结果通常也是一个n位整数,即结果只取2n位乘积中的低n位。这导致乘法运算得到结果必须在范围: -2n-1<= x*y < 2n-1才不会溢出。假设为4位,进行52 0101 * 0101 -------- 0101 + 0101 -------- 只取4位,即1001 为1111的补码 即为-7 00011001 ----在二进制乘法运算下,只有1*1等于1;再列如:32 0011原创 2021-05-19 19:33:59 · 3891 阅读 · 0 评论 -
计算机系统定点数编码表示
原码·表示数值例子采用4位二进制,最高位表示符号位,0代表正、1代表负缺点:1、0的表示不唯一,故不利于程序员编程+0:0000-0:10002、加、减运算方式不唯一3+2:3-2: 0011 0011 + 0010 - 0010 ---- ---- 0101 00013、需要额外对符号进行处理,故不利于硬件设计需要硬件对加法处理的同时又需要硬件对减法的处理,这大大增加了设计的难度。4、当a<b时,实现a-b比较困难2-.原创 2021-05-15 16:18:22 · 734 阅读 · 1 评论 -
2021-05-02
过程过程是软件一种很重要的抽象,它提供了一种封装代码的方式,用一组指定的参数和一个返回值实现某种功能,然后,可以在不同的地方调用这个函数。假设过程P调用过程Q,Q执行后返回到P。这些动作包含以下一个或多个机制。1、传递控制。在进入过程Q的时候,程序计算器必须设置为Q的代码的起始地址,然后再返回的时候,就需要把程序计算器设置为P中调用Q后面那条指令的地址。2、传递数据。P必须能够向Q提供一个或多个参数,Q必须能够向P返回一个值。3、分配和释放内存,在开始时,Q可能需要为局部变量分配空间,而在返回.原创 2021-05-09 16:25:32 · 221 阅读 · 0 评论 -
程序地机器级表示
使用现代地优化编译器最大的优点是:用高级语言编写的程序可以在很多不同的机器上编译和执行,而汇编代码则是与特定机器密切相关的为什么要花时间学习机器代码?通过阅读这些汇编代码。我们能够理解编译器的优化能力,并分析代码中隐含的低效率。尝试源代码的各种形式,每次编译并检查产生的汇编代码,从而了解程序将要运行的效率如何?有些时候,高级语言提供的抽象层隐藏了我们想了解的程序运行行为列如:用线程包写并发程序时,了解不同的线程是如何共享程序数据或保持数据私有的,以及准确知道如何在哪里访问共享数据。再列如:程原创 2021-04-23 00:22:59 · 655 阅读 · 0 评论