摘要: 记得我第一次学C语言时,我并不了解补码,于是我曾经以为对5(二进制表示:101)按位取反得到的是2(二进制表示:010)。有一次我做了个实验,我把~5的运算结果输出到控制台,结果发现是-6!当时我还感到很惊讶:为什么一个正数按位取反后会得到负数!?然后通过百度,我才了解到了补码,才明白这是怎么一回事 阅读全文
posted @ 2020-02-28 10:19 ZhouYiJoe 阅读(1569) 评论(0) 推荐(0)
摘要: 我们利用书籍《计算机系统概论》中的一个具体例子来讲讲时序电路的工作流程。 书中使用下图所示的时序逻辑电路实现了上文所述的交通警告牌控制器。 其中,时钟信号按照如下图象所示的规律进行变化。 理解这个电路的关键在于理解电路中两个存储单元的工作流程。通过观察发现,两个存储单元都是分别由两个相连的门控D锁存 阅读全文
posted @ 2020-02-24 15:09 ZhouYiJoe 阅读(592) 评论(0) 推荐(0)
摘要: 有一次我发现下面这段代码无法通过编译。 #include <iostream> using namespace std; struct A { A(int n) {} }; struct B { B(A a) {} int foo() const { return 1; } }; int main( 阅读全文
posted @ 2020-02-24 11:04 ZhouYiJoe 阅读(1300) 评论(0) 推荐(0)
摘要: RS锁存器是如何做到存储数据的呢?这里我们只讲解用与非门实现的RS锁存器,用或非门实现的RS锁存器的工作原理其实是相似的。我们先看图。 上图就是RS锁存器的结构。其中S和R为输入端,a和b为输出端,A使得a和R连接在同一个与非门,B使得b和S连接在同一个与非门。我们一般把a的值作为RS锁存器所保存的 阅读全文
posted @ 2020-02-19 14:28 ZhouYiJoe 阅读(12084) 评论(0) 推荐(0)
摘要: 题目地址: http://poj.org/problem?id=2955 题目内容: Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence 阅读全文
posted @ 2020-02-11 21:24 ZhouYiJoe 阅读(233) 评论(0) 推荐(0)
摘要: Shell排序算法的基础是插入排序算法,所以在开始讲Shell排序算法之前,先讲讲插入排序算法。 我们先来看一个简单的小问题,给出一个已经排序好的数组arr以及另外一个数字n,如何将n放入到数组arr中,使得放入n后arr内的所有数字依然是有序的? int arr[10] = {3,4,7,8,10 阅读全文
posted @ 2020-02-03 10:43 ZhouYiJoe 阅读(590) 评论(0) 推荐(0)
摘要: 约瑟夫问题的描述: n个人围成一圈,第一个人从1开始报数,报m的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的幸存者的编号(编号从零开始)。 如果需要知道每一轮被杀掉的人的编号的话,最好的方法可能是使用链表。不过如果只需要知道最后幸存者的编号的话,链表法的时间复杂度是无法接受的, 阅读全文
posted @ 2020-01-03 22:17 ZhouYiJoe 阅读(709) 评论(0) 推荐(0)
摘要: 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max s 阅读全文
posted @ 2020-01-03 19:47 ZhouYiJoe 阅读(430) 评论(0) 推荐(0)