- 博客(10)
- 收藏
- 关注
原创 自制计算机之半加器
上一篇文章我们做了异或门,有了它就可以计算加和了,但是进位还需要结合与门。这次我们把异或门和与门结合起来组成半加器。左边的灯泡代表进位,右边的是加和。详细的视频演示我放在了B站,有兴趣的朋友可以看一下。https://www.bilibili.com/video/bv1et4y1i7LP...
2020-09-16 22:56:48
434
原创 自制计算机之异或门
半加器其实就是由一个异或门和一个与门组合而成,异或门用作求和。与门用作进位。例如一加一,现在只有两个输入A和B ,A开关断开或闭合可以用0或1表示,B同理。那么就有0+0=0, 0+1=1, 1+0=1,1+1=10 (2的二进制)。因为sum只有一个灯泡(见下图的灯泡) ,所以只能表示0或1,那么结果2(十进制)要用两个灯泡才能表示。因此就产生了进位,我们用carry这个灯泡来表示进位。所以要表示1+1=2,需要carry这个灯泡亮(表示1),并且sum这个灯泡不亮(表示0)。那么2就被表示成了10
2020-09-15 23:50:27
1272
原创 自制计算机之与门或门和非门
因为转行java想要学计算机基础,所以打算自己做个八位计算机,顺便学一下汇编,和操作系统。所以从最基础的数字电路搞起,从这篇文章开始我想将制作的过程记录下来作为自己成长的见证吧。下面是最基础的与门,非门,和或门的搭建。有了这些就能搭建出半加器,然后是全加器,最终做出一个八位计算机。下一篇文章将会利用这些逻辑门搭建一个半加器。(https://img-blog.csdnimg.cn/20200915230744298.jpg?x-oss-process=image/watermark,type_ZmF
2020-09-15 23:19:14
1666
原创 汇编语言实验5 第(5)题
原题(5)程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。```assume cs:code a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends c segment db 0,0,0,0,0,0,0,0 c ends code segment start: ? code ends end start ```思路:
2020-07-12 16:36:10
1457
1
原创 手写一个双向链表
本次要实现的链表如图所示,first和last分别指向首部和尾部.该链表首尾不循环.首先建一个interface定义一些链表应该具有的方法.package List;/** * @InterfaceName SingalLinkedList * @Description TODO * @Author lixiang * @Date 2020/2/26 11:24 * @Version 1.0 */public interface SingalLinkedList<E> .
2020-05-12 12:48:17
333
原创 8086CPU内存单元的取值范围是多少?
在复习王爽老师的<<汇编语言>>的时候,遇到了一个想不明白的问题.如图不知道大家看到第一条的时候有没有同样的困惑,ffff:0006单元中的数是一个字节型的数据,范围在0~255之间.What? 一个8bit的内存单元,能存放的数 的数值范围在0-255之间?那负数怎么存,内存单元难道不能存放负数吗?下面说一下我的理解.假设一个内存单元是4bit(实际是8bit,因为穷举起来太麻烦,我们暂时假设是4bit).那么4bit空间,用补码表示数值可以表示的范围是多少呢.如下图(我自己手
2020-05-11 16:19:30
1653
原创 leetcode125. 验证回文串
解题思路使用首尾指针估计大家都能想到我一开始判断是否是字母或数字,还有忽略大小写判断字母是否相同的方法都是调用的api,发现效率不高.然后看到有人自己实现的还挺简洁就拿来用了.思路总体就是,用两个首尾指针,如果不是字母或数字指针向前移动,是的话就比较class Solution { public boolean isPalindrome(String s) { i...
2020-04-20 13:10:25
103
原创 手写一个单链表
本人文科生,转行做java开发,目前在恶补计算机基础.这篇文章就是一个学习笔记,记录自己学习单链表时的一些理解,有不正确的地方希望直接指出我会改正的,不必喷我,我目前就是小白.欢迎大家批评指正.我这次实现的是一个带头节点的单链表如下图,其中L代表头节点,L节点本身不存数据,只在自己的next域里存储下一个数据节点的地址.P是一个指针用来操作链表.该单链表不循环,所以最后一个节点的next域是nu...
2020-04-15 08:54:40
553
原创 手写一个ArrayList
本人文科生,转行做java开发,目前在恶补计算机基础.这篇文章就是一个学习笔记,记录自己学习ArrayList的一些理解.我是模仿java的ArrayList的实现思路写的,java里有些native的方法是自己写的,有不正确的地方希望直接指出我会改正的,不必喷我,我目前就是小白.欢迎大家批评指正.为了方便看 我将方法大致分了四类即 增 删 改 查.另外源码中的System.arraycopy方...
2020-04-14 15:39:43
142
原创 LeetCode - 旋转数组 对于之前写的进行优化
LeetCode - 旋转数组 (Rotate Array)思路:题目要求空间复杂度为O(1),所以我想的是把整个数组当成一个转盘,k就是转动的次数。k是多少就转动多少次。利用递归每转动一次将数组的每一个数往前移动。用一个临时变量记录最后一个数,移动完将最后一个数赋值给下标0位置的数。这样整个就转动(旋转)了一次。然后递归去转动。class Solution {public void rot...
2019-12-15 16:04:38
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人