Blog

Thinking will not overcome fear but action will.

csapp第九章-控制单元的功能

第九章 控制单元的功能 执行周期 非访存指令 清除累加器指令CLA 累加器取反指令COM 算术右移一位指令SHR L(ACC)->R(ACC), ACC0->ACC0 循环左移一位指令 R(ACC)->L...

csapp第三章-系统总线

第三章 系统总线 分散连接 以运算器为中心,严重影响CPU的工作效率–>以存储器为中心,IO和主存之间交换信息可以不通过运算器,采用中断、DMA技术提高CPU效率 总线连接 某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息 面向CPU的双总线结构 连接CPU和主存的叫存储总线(M总线) 建立CPU和各IO之间交换信息的通道叫输入输出总线(I...

csapp第七章-指令系统

第七章 指令系统 7.1.1 指令 操作码 扩展操作码 指令字长16位 15位三地址、15位二地址、15位一地址、16位零地址 61条 尽量安排指令使用频度低的占用较长的操作码,可缩短经常使用的指令的译码时间 地址码 四地址指令 A1 第一操作数地址 A2 第二操作数地址 A3 结果地址 A4 下一条指令的地址 (A1)OP(A2)->A3 如果指令字长32位,操作码8位,4个...

csapp第一章-计算机系统概论

第一章 计算机系统概论 典型的冯诺依曼计算机是以运算器为中心的,现代的计算机已转化为以存储器为中心。 五大部件:输入设备、输出设备、存储器、运算器、控制器 运算器和控制器–>CPU M.M主存储器 CPU内部 ALU:算术逻辑单元 CU:控制单元(CU控制AU,IO设备也受CU控制) 设某机的指令字长为16位,操作码6位,地址码10位 运算器包括三个寄存器(往往有寄存...

约瑟夫问题

约瑟夫问题 Question N个人围成一圈,从第一个人开始报数,报到M的人出圈,剩下的人继续从1开始报数,报到M的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号) Answer 解法一: 假设有n个人,从1到n,放入一个ArrayList中。 设置开始的编号k(设为0,为第一个人),加上需要报的数减1,即得到需要出列人的索引。 要注意要出列的人是不是最后一个人,要...

leetcode202.快乐数(Java实现)

#leetcode202.快乐数 Question 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例:  输入: 19 输出: true 解释: 12 + 92 ...

leetcode226.翻转二叉树

leetcode226.翻转二叉树 Question 翻转一棵二叉树。 示例: 输入: 输出: 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/invert-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 Answer 法一:前序遍历 /*...

用两个栈实现队列

用两个栈实现队列 Question 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 Answer package queuebystack; import java.util.Stack; public class QueueByStack { Stack<Integer> stack1 = new Stack<...

单链表的翻转

单链表的翻转 遍历法 pre:上一个结点 curr:当前结点 temp:临时结点,用于保存当前结点的指针域 基本思路:从前往后修改每个结点的指针。在curr != null的while循环中,先将当前结点curr的下一个结点存到temp即临时结点中,修改当前结点的指针curr.next = pre,然后指针后移,pre = curr curr = temp。最后把原链表的头结点head...

二分求函数零点

二分求函数零点 Question 有函数: f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121 已知 f(1.5) > 0 , f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5,2.4] 有且只有一个根,请用二分法求出该根 输出 该方程在区间[1.5,2.4]中的根。要...