What are hypervisors? A hypervisor is a software that enables multiple virtual machines (VMs)—each with its own operating system (OS)—to run on one physical server. The hypervisor pools and allocates physical computing resources as needed by the VM, enabl…

2025年5月24日 0条评论 204点热度 0人点赞 MuWinds 阅读全文

C/C++程序的编译过程分为四个关键阶段:​​预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)​​。每个阶段承担不同任务,最终将源代码转换为可执行文件。 一、预处理阶段(Preprocessing) 预处理是编译的第一步,主要处理源代码中以 # 开头的指令,生成经过处理的中间代码(.i 文件)。核心功能包括: ​​示例命令​​: 预处理器的核心功能 预处理与编译流程的关系 预处理的实际应用与注意事项 预处理指令示例 …

2025年5月22日 0条评论 252点热度 0人点赞 MuWinds 阅读全文

A.原子性 即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性确保对共享资源的操作不会被其他线程干扰,从而避免数据不一致性(如竞态条件) 本质​​:原子性依赖于硬件和编译器的支持,例如CPU的原子指令(如x86的LOCK前缀)或编译器生成的原子操作代码,确保操作在底层不可分割。 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。试想一下,如果这2个操作不具备原子性,会造成什么样的后…

2025年5月19日 0条评论 141点热度 1人点赞 MuWinds 阅读全文

双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息。 713. 乘积小于 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]…

2025年5月4日 0条评论 136点热度 0人点赞 MuWinds 阅读全文

有两个人 A 和 B。 A 通过网络向 B 发送一条消息。B 收到了之后,怎么确认: 1.这条消息没有被中间人篡改过 2.这条消息确实来自于 A,而不是某个 C 伪造出来的 答案就是使用 MAC。A 在发送消息时,计算出该消息的 MAC 值,并将其一起发送给 B。B 收到之后,便可以根据 MAC 确认 1 和 2. 直接出公式:MAC = 散列 + 对称密钥 也就是说,消息验证码 MAC 是散列技术和对称密钥技术的联合使用。 首先说散列,散列的作用是防篡改。 任何一段消息,不管有多长,都可以通过一个散列算法计算出一…

2025年5月2日 0条评论 115点热度 0人点赞 MuWinds 阅读全文

 Oauth2.0 定义了几种授权流程,其中最重要、也最基础的是 Authorization Code 授权。先看流程图:   1,用户访问 A 网站   2,A 打开 B 的授权页面   3,用户看到授权界面,输入账号密码进行授权   4,B 验证用户是合法的之后,生成一个 authorization code,然后通过 302 跳转的方式,把这个 code 发送给 A   5,A 用这个 code 调用 B 的 api,获得 access token   6,A 用 access token…

2025年5月2日 0条评论 210点热度 0人点赞 MuWinds 阅读全文

一、背景 platformio现有的板子库里面没有ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)的开发板模型,直接强行套用,要么就是解锁不了8MB PSRAM,要么就下载后运行不起来。但是Arduino可以正常解锁。 二、简单解决办法 先选用esp32-s3-devkitc-1作为开发板模型,在它的基础上做额外的修改: 具体修改配置已经整理到platformio.ini,如下: 编译、下载和运行即可。

2025年5月1日 0条评论 251点热度 0人点赞 MuWinds 阅读全文

在现代计算机中,所有数据都以二进制形式存储,即 0 和 1 两种状态。计算机对二进制数据进行的运算(如加、减、乘、除)被称为位运算,即对二进制数的每一位进行操作的运算。 为了更好地理解位运算,举个简单的例子:假设我们有如下代码进行两个整数的加法运算: 计算机会将这两个整数转换为二进制形式,然后进行加法运算: 35: 0010 001147: 0010 1111----------------82: 0101 0010 因此,与直接使用 +、-、*、/ 运算符相比,合理运用位运算可以显著提高代码在…

2025年4月14日 0条评论 138点热度 0人点赞 MuWinds 阅读全文

前途一片阴暗,好凉快,人生一波三折,好便宜,生活千疮百孔,好透气。工作天天加班,好充实。忙的焦头烂额,好暖和。工资少得可怜,好携带。人生一贫如洗,好干净。计划又泡汤了,泡汤很舒服啊,因为太多人对我蹬鼻子上脸,导致我的面部比较扁平,我是被害的,话到嘴边又咽了下去,每天以此获得饱腹感

2025年4月13日 0条评论 184点热度 1人点赞 MuWinds 阅读全文

一部分转载自巴哈姆特:https://home.gamer.com.tw/creationDetail.php?sn=4114818 stringstream是一個C++底下的類別,專門拿來讀取字串並且處理,很多時候拿來做字串的切割,或者是int跟string類別之間的轉換。 头文件(其实竞赛中多数是直接万能头文件的 xD) C++ ●把int型態的數字轉成string 此時的stringstream就像個橋樑,可以負責當中間轉換的部分。 stringstream提供了>>與<<運算子來讀取…

2025年4月9日 0条评论 217点热度 0人点赞 MuWinds 阅读全文
123459