自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (2)
  • 收藏
  • 关注

原创 cmake tutorial

Tutorial-1最基本的项目是从源代码构建可执行文件, 对于简单的项目,三行CMakeLists.txt足够了,这就是本教程的起点,在Step1目录下创建一个CMakeLists.txt, 如下所示:cmake_minimum_required(VERSION 3.10)# 设置project的名字project(Tutorial)# 添加执行add_executable(Tutorial tutorial.cxx)这个例子中CMakeLists.txt文件中使用了小写命令。CMake支

2022-01-16 23:22:01 209

原创 利用多态实现std::function

#ifndef PINK_FUNCTION_H#define PINK_FUNCTION_Htemplate<typename R, class... Arg0>class function{public: function(R(*fun)(Arg0...)) { __calltable<R(*)(Arg0...)>* table = new __calltable<R(*)(Arg0...)>(fun); this-&

2021-10-25 15:38:04 164

原创 shared_ptr的循环的资源泄漏

shared_ptr的循环的资源泄漏先上代码class A :public enable_shared_from_this<A>{ public: A() { cout << "A create" << endl; } ~A() { cout << "A dele" << endl; } void son_ge

2021-10-25 15:33:52 127

原创 收录一些有意思的代码

1.整数的二进制位奇数位和偶数位交换#define CHANGE(X)\ ((((X) & (0x55555555)) << 1) | (((X) & (0xaaaaaaaa)) >> 1))

2021-09-23 19:34:18 120

原创 Linux 0.11内核代码详读

前言最近在学习操作系统,奈何操作系统太过庞杂,想开个专栏记录自己学习Linux0.11的代码思考。end

2021-09-21 15:49:02 122 1

原创 对xlsx表实现数据可视化

目的实现供应商供应和的一个统计表需要的库python -m pip install -U matplotlib这是图形库python -m pip install -U openpyxl这是操作xlsx的库(数据来源是xlsx文件)在开始之前,我们先引入头文件import matplotlib.pyplot as plt#plt是我们的画板from openpyxl import load_workbook先打开我们需要读取的xlsx文件wb = load_workbook('

2021-09-10 16:37:10 572

原创 优先队列实现,超级详细,附带cpp源码,看不懂你骂我!

优先队列的实现Thinking-基本思想优先队列是一个数据结构,数据进入队列,并且按照权值的大/小顺序出队API-调用void insert(int val); //用于插入数据int deleMax(); //用于删除数据,此处是按照最大的数据返回!int getSize(); //获取队列大小Code-实现在实现insert 和 deleMax之前, 我们先定义两个队列操作,swim 和 sink(上浮和下沉),他们是我们实现队列的关键。sink

2021-09-06 23:14:54 265 3

原创 I/O设备

标准设备(不真的存在,理解用)从图中可以看到一个包含两部分的重要组件的设备。第一部分是向系统其他部分展现的接口。第二部分是它的内部结构。这部分包含设备相关的特定实现,负责具体实现设备展示给系统的抽象接口。非常简单的设备通常用一个或者几个芯片来实现它们的功能。标准协议在上图中,一个设备接口包含三个寄存器,一个状态寄存器(status)寄存器,可以读取并查看当前设备的状态;一个命令(command)寄存器,用于通知设备执行某个具体任务;一个数据(data)寄存器,将数据传给设备或从设备接受数据。通过

2021-06-20 15:27:42 141

原创 关于软盘:(

磁盘被分成若干个磁道,每个磁道又分为若干个扇区,每个扇区存储512个字节。磁道是一组同心圆,一个磁道大约有零点几个毫米的宽度,数据就存储在这些磁道上。我们不需要记住那么多,只要知道每个扇区间隔512kb就行,可以用java中的流库将东西loader写入nasm生成的img文件中,每个扇区是以512kb作为单位 的。...

2021-06-17 21:23:52 115

原创 读取硬盘(个人笔记)

mbr只有512字节,不能装下整个内核,所以我们要读取loader,把loader放到内存中哪里?在实模式下0x5000x7bff和0x7e0009fbff是可以使用的内存。注意,在loader中要存放一些数据结构,loader被加载后就不能覆盖,内核也会越来越大,所以loader要较低位,这里就选择0x900吧。SECTION MBR vstart = 0x7c00LOADER_BASE_ADDR equ 0x900LOADER_START_SECTOR equ 0x2mov ax,csmo

2021-06-17 21:09:33 337

原创 更新MBR(个人笔记)

注意:gs是控制显示器的!SECTION MBR vstart = 0x7c00mov ax,csmov ds,axmov es,axmov ss,axmov fs,axmov sp,0x7c00mov ax,0xb800mov gs,axmov ax,0600hmov bx,0700hmov cx,0mov dx,184fhint 10h ;清屏mov byte [gs:0x00],'1'mov byte [gs:0x01],0xA4mov b

2021-06-16 00:15:07 240 2

原创 操作系统的引导(个人笔记)

计算机在接电后,运行的是bios,bios是运行在主板的一个小程序,然后bios将找到MBR(Main Boot Record 主引导程序),MBR存在于硬盘最开始的扇区,0盘0道1扇区,MBR引导扇区中内容:446字节引导程序以及参数;64字节的分区表;2字节结束标记0x55 和 0xaaMBR负责找次引导程序。每个分区占16字节,故有4个分区表,这四个分区中有次引导程序,MBR遍历这四个分区,将系统控制权交给次引导程序。次引导程序是操作系统提供的的加载器,由加载器完成操作系统的自举。注

2021-06-13 15:21:04 340

原创 Java平衡二叉树实现

平衡二叉树自己看书上定义。直接上源码若方法没写全,后续会补上。public class BTS<Key extends Comparable<Key>,Value> { private class Node { private Key key; //键,用于比较,用Comparable类的子类来进行比较 private Value val; //值 private Node left; private Node rig

2021-02-21 18:47:25 142 5

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除