自制操作系统 学习笔记(持续更新)

Malachite 2020 第一天 工具列表 十六进制编辑器:Bz162 模拟器:QEMU 汇编器:nask 知识 计算机只会忠实地执行表示“开”或“关”的电信号 二进制数和十六进制数的对照表 BIN HEX 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F 汇编指令 指令 含义 DB x define byte / 写入一个字节的数据或指令 n RESB n reverse byte / 预定 n 个字节的 0x00
Read More ~

C++ 语法 / Assert 断言

断言广泛存在于我所了解的几乎全部语言中。

C,C++,Python,Haskell,Lisp,……,都有自己的断言实现,且不同语言中的断言按照各自语法解读之后的“人话”几乎没有任何歧义。

当然,正如标题所言:本文主要讲的是 C/C++ 的断言。

Read More ~

C++ 高级语法 / 引用、右值和左值

一般而言,传统的为了竞赛的 C++ 教学中对 “引用” (使用运算符&) 的解释和 C 一样,就是 “取得这个变量的地址”。

和指针一样,这是常规 OIer 无需了解的知识,为了避免浪费时间,老师一般对于这一方面的知识根本不讲或者放下 C++ 而拿出 “ C 语言从入门到入土” 简单带过。然而,在工程开发中,正确、灵活地使用引用,可以使程序简洁、高效。了解左值、右值引用,更能与最新 C++ 标准接轨,了解最近产生的特性,有助于理解他人程序、简化自己的代码。

Read More ~

笔记 : 欧拉路 [Ongoing]

什么是欧拉路 欧拉路是指从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边通过的且只通过一次。 怎样判断有欧拉路存在 无向图 图一定要联通,且: 所有顶点度数均为偶数,则存在欧拉回路 两个点度数为奇数,其余的为偶数,则存在欧拉通路 有向图 图联通依然是一个必要条件。且: 每个点的入度等于出度,则存在欧拉回路(任意一点有度的点都可以作为起点) 除某两点外,所有入度等于出度。这两点中一点的出度比入度大,另一点的出度比入度小,则存在欧拉通路。出度大者是起点,入度大者是终点。 怎样找到欧拉路 之前的内容大致只是用于发现该题目应该使用欧拉回路的方法求解。 以下寻找方法均建立在假设图中存在欧拉回路的基础上,其自身并不能判断图是否满足条件。 从一个非孤立的点开始DFS,点可以重复经过,每次任意走一条边,并将这条边从邻接表中删去。走到目标终点(找到欧拉通路),或者走回起点(找到欧拉回路)。
Read More ~