自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lotuscc的博客

你和你的犬色声马,我和我的各安天涯。 千里走单骑,八方为敌。 青灯古佛度苍生,不愿度己。

  • 博客(110)
  • 资源 (2)
  • 收藏
  • 关注

原创 CCPP汇编综合例程

C,CPP,汇编综合例程文件结构:srcasmams_base.Scmain_c.ccppmain_cpp.cincasm.hmain_c.hmain_cpp.hobjmakefile# src/asm/asm_base.S.text.globl asm_add.globl asm_subasm_add: push %ebp mov %esp,%ebp mov

2021-04-22 20:49:42 214

原创 C中调用C++函数

C中调用C++函数文件结构:srccmain_c.ccppmain_cpp.cincmain_c.hmain_cpp.hobjmakefile// src/c/main_c.c#include "main_cpp.h"#include "main_c.h"int main_c(){ return 0;}int c_add(int a, int b){ return a + b;}int c_sub(int a, int

2021-04-22 20:04:43 1271

原创 C中调用C++函数

C中调用C++函数文件结构:srccmain_c.ccppmain_cpp.cincmain_c.hmain_cpp.hobjmakefile// src/c/main_c.c#include "main_cpp.h"#include "main_c.h"int main_c(){ int a = 10; int b = 20; int c = cpp_add(a, b); int d = cpp_sub(a,

2021-04-22 19:57:05 247

原创 C++中调用汇编函数

C++中调用汇编函数objsrcasmasm_base.Scppmain_cpp.cppincasm.hmakefilea.out# src/asm/asm_base.S.text.globl asm_add.globl asm_subasm_add: push %ebp mov %esp,%ebp mov 0x8(%ebp),%edx mov 0xc(%eb

2021-04-22 19:23:36 681

原创 C中调用汇编函数

C中调用汇编函数文件结构:objsrcmakefile// src/c/main_c.c#include "asm.h"int main_c(){ int a = 10; int b = 20; int c = asm_add(a, b); int d = asm_sub(a, b); return 0;}# src/asm/asm_base.S.text.globl asm_add.globl asm_subasm_add

2021-04-22 18:00:09 1271

原创 数组中数字出现的次数 II

文章目录题目题目描述:示例 1:示例 2:限制:解题思路预备知识:[只出现一次的数字_Lotuscc的博客-CSDN博客](https://blog.csdn.net/canhelove/article/details/115445104)代码题目剑指 Offer 56 - II. 数组中数字出现的次数 II - 力扣(LeetCode)题目描述:在一个数组numsnumsnums中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4

2021-04-05 20:04:52 133

原创 只出现一次的数字

题目136. 只出现一次的数字 - 力扣(LeetCode)剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode)解题思路异或性质:0⊕0=0(1)0 \oplus 0=0 \tag{1}0⊕0=0(1)0⊕1=1(2)0 \oplus 1=1 \tag{2}0⊕1=1(2)1⊕0=1(3)1 \oplus 0=1 \tag{3}1⊕0=1(3)1⊕1=0(4)1 \oplus 1=0 \tag{4}1⊕1=0(4)结论(1):(1):(1):由(1)(2)(

2021-04-05 17:20:59 74

原创 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法 - 力扣(LeetCode)十进制加法:1998+0624=26221998+0624=26221998+0624=2622不考虑进位1998+0624=15121998+0624=15121998+0624=1512只考虑进位8+4=108+4=108+4=1090+20=10090+20=10090+20=100900+600=1000900+600=1000900+600=1000总和:1512+10+100+1000=26221512+

2021-04-02 16:51:43 57

原创 约瑟夫环问题

约瑟夫环问题剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode)首先以n=5,m=3n=5, m=3n=5,m=3为例。从n=1n=1n=1到n=5n=5n=5从头开始模拟整个过程。在模拟的过程中,主要考虑最终留下来的人的位置,为了方便讨论以及贴合题目,规定编号从000开始。设定f(n,m)f(n,m)f(n,m)为nnn个人中,每次数mmm个,最后安全的人的编号。现在考虑m=3m=3m=3,为了方便叙述,简化f(n,3)=F(n)f(n,3)=F(n)f(n,3)=F(n

2021-04-02 15:37:00 142

原创 内核双向循环链表

内核双向循环链表普通的双向循环链表,一般将前向指针prevprevprev以及后向指针nextnextnext内嵌到特定的数据结构中。再根据这种特定的结构编写插入,删除等函数。struct myOrdinaryType { int data; struct myOrdinaryType *prev, *next;};这里介绍一种通用的双向循环链表,可以不依赖具体的数据类型。struct list_entry_t { struct list_entry_t *prev,

2021-04-01 09:53:50 127

原创 链表寻找环入口

链表寻找环入口#mermaid-svg-JWpRPnYJFwJDkcyw .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-JWpRPnYJFwJDkcyw .label text{fill:#333}#mermaid-svg-JWpRPnYJFwJDkcyw .node rect,#mermaid-svg-JW

2021-03-31 18:59:21 160 1

原创 回溯算法

回溯算法78. 子集 - 力扣(LeetCode)90. 子集 II - 力扣(LeetCode)可以看到当集合中没有重复数字时可以采用这种回溯算法。算法构成的遍历树如下所示,每次遍历到一个节点时就将当前路径上所有节点加入到集合中。我们可以看到一共有8个节点,因此一共有八种结果。#mermaid-svg-TFch7XY5az0Gy4xF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font

2021-03-31 16:58:08 76

原创 Deepin Qt Install

Deepin APP Store download Qt Creatorsudo apt install qt-defaultThere may be a error No qmlscene installed in Qt Versions .sudo apt install qmlscenesudo apt install qtdeclarative5-dev

2021-01-03 13:46:12 143

原创 Linux C Socket简单应用

Linux C Socket简单应用简单的socket应用。server代码#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/in

2020-07-14 17:28:50 660

原创 Ubuntu18.04 sqlite3安装及其应用

ubuntu18.04 sqlite3安装及其应用1. 安装sqlite3sudo apt-get install sqlite3sudo apt-get install libsqlite3-dev 2. 安装sqlite3可视化工具sqlitebrowsersudo apt-get install sqlitebrowser3. sqlite3简单应用#include <stdio.h>#include <stdlib.h>#include <sqli

2020-07-13 17:35:36 4823

原创 C语言三大标准C89,C99和C11

C89 标准1983 年美国国家标准局(American National Standards Institute,简称 ANSI)成立了一个委员会,专门来制定C语言标准。1989 年C语言标准被批准,被称为 ANSI X3.159-1989 “Programming Language C”。这个版本的C语言标准通常被称为 ANSI C。又由于这个版本是 89 年完成制定的,因此也被称为 C89。C99 标准在 ANSI C 标准确立之后,C语言的规范在很长一段时间内都没有大的变动。1995 年C程序

2020-07-07 18:16:21 6069

原创 cmake基础用法总结

简单使用:CMakeLists.txt文件内容如下:cmake_minimum_required(VERSION 2.8)project (hello)add_executable(hello hello.c)注释:这个示例中我们只有一个源文件hello.c,目标是生成一个hello的可执行文件。运行cmake .后生成Makefile文件,. 代表CMakeLists.txt在当前目录下,再make即可生成hello的可执行文件。第一行用于指定cmake最低版本。第二行指定项目名称。

2020-07-06 18:28:13 396

原创 Linux下静态库和动态库的生成和使用

静态库的生成和使用:gcc -c code1.c code2.car rcs libxx.a code1.o code2.ogcc -o file file.c -L. -lxx注释:静态库的名称有一定的格式要求,一般是libxx.a,xx为库名。-L指定库文件的路径 ,-L.代表当前目录。-l指定编译时要连接的静态库,-lxx代表库名为xx。动态库的生成和使用:gcc -shared -fPIC -o xx.so xx.cgcc -o file file.c ./xx.so

2020-07-06 17:35:33 540

原创 编译器三级优化都干了什么

GNU编译器提供-O选项供程序优化使用:-O 提供基础级别的优化-O2 提供更加高级的代码优化,会占用更长的编译时间-O3 提供最高级的代码优化-O4 不优化,这是默认值第一级:代码调整代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等都属于这一级;这个级别试图执行9种单独的优化功能:-fdefer-pop-fmerge-constans-fthread-jump

2020-07-06 17:11:57 384 1

原创 嵌入式 linux C 第 1 天

问题1:嵌入式底层开发为什么选择C语言?C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。C语言具有很高的运行效率。参考资料:嵌入式开发为什么选择C语言?问题2:什么是实时性?硬实时?软实时?实时性就是系统的活动是有时限的特性,系统必须在规定的时刻或时间段内活动(如采集数据,做出响应等)硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现

2020-07-03 16:56:04 274

原创 C语言面对对象的一种简单写法

#include <stdio.h>#include <string.h>struct app{ int x; int y; char name[10]; void (*init)(struct app *thisptr, int _x, int _y, const char *_name); int (*calxy)(str...

2019-10-28 12:02:50 703

原创 x86_64汇编调用过程简介

文章目录过程是软件中一种很重要的抽象。转移控制:转移控制是通过call指令以及ret指令来实现的。传递数据:数据可以通过寄存器和栈来传递。分配和释放内存:局部存储分为栈上的局部存储以及寄存器中的局部存储。过程是软件中一种很重要的抽象。它提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了某种功能。设计良好的软件用过程作为抽象机制,隐藏某个行为的具体实现,同时又提供清晰简洁的接口...

2019-10-28 10:46:34 484

原创 switch汇编跳转表

switch语句跳转表switch语句可以根据一个整数索引值进行多重分支。GCC根据case的数量和case值的稀疏程度来翻译switch语句,当case情况比较多(例如4个以上),并且值的范围跨度比较小时,就会使用跳转表。跳转表是一个数组,表项i是一个代码段的地址,这个代码段实现当开关索引值等于i时程序应该采取的动作。void switcher(long a, long b, long ...

2019-10-27 19:58:50 3391

原创 x86_64汇编循环翻译通用方法

x86_64汇编循环翻译通用方法do-while循环do-while循环的通用形式如下:do body-statement while(test-expr);->loop body-statement t = test-expr if(t) goto loop;while循环while循环的通用形式如下:while(test-expr) ...

2019-10-27 17:35:30 647

原创 8086实模式下的中断简介

8086实模式下的中断简介8086实模式下一共有256个中断。每个中断都有一个中断号。中断向量表:内存物理地址0x00000-0x003FF 这 1KB 的空间中,存放了256个中断的入口地址。每个中断的入口地址占用4字节(4B),前2字节为偏移地址,后2字节为段地址。中断分为:外部硬件中断,内部中断,软中断。外部硬件中断:非屏蔽中断,可屏蔽中断可屏蔽中断:由 INIR 引脚接入...

2019-10-27 16:17:43 1346

原创 条件分支的两种基本翻译方法

文章目录条件分支的两种基本翻译方法:1. 使用条件控制2. 使用条件传送总结条件分支的两种基本翻译方法:1. 使用条件控制if(test-expr) then-statementelse else-statement->t = test-exprif(!t) goto false;then-statement goto done;false: else-stat...

2019-10-27 15:42:40 244

原创 bochs调试入门

bochs调试入门安装sudo apt-get install vgabios bochs bochs-x bximage创建软盘bximagefd一直回车,将在当前目录下会创建一个默认大小为1.44M的软盘名为a.img。dd if=boot of=a.img bs=512 count=1 conv=notrunc #将二进制文件写入软盘,boot为汇编生成的二进制文...

2019-09-27 23:16:58 277

原创 stlink GDB调试STM32入门

stlink GDB调试STM32入门github stlink 官方make #编译st-util #启动调试arm-none-eabi-gdb fancyblink.elf #启动GDB调试,fancyblink.elf为自己工程生成的文件在对应的build目录下(gdb) tar extended-remote :4242 #连接端口,默认为4242(gdb) ...

2019-09-22 10:19:33 2044

原创 Makefile 简单工程篇

Makefile 简单工程篇前面介绍了Makefile的基本语法以及简单使用。这次我们考虑怎么编写一个简单工程的Makefile。假设我们的工程目录结构为:|–src| — main.cpp| – foo1.cpp| – foo2.cpp|–include| — foo1.h| — foo2.h|–obj|–bin我们希望编译生成的.o目标文件放在obj目录下,生成的...

2019-09-13 15:46:02 504 1

原创 win10 汇编语言Debug工具安装

资源地址找到安装DOSBox的目录,双击DOSBox 0.74-3 Options.bat文件在文件末尾输入所示内容,注意将目录地址替换为自己Debug.exe存放的地址。双击DOSBox.exe即可打开...

2019-09-07 18:55:15 691

原创 VC6.0+番茄助手安装教程

VC6.0+番茄助手安装教程VC6 With VAX.zip-CSDN下载VC6.0的安装解压VC6.0green文件双击sin.bat之后会在桌面生成一个VC6.0的快捷方式。点击即可打开VC6.0.番茄助手的安装解压Visual Assist X文件找到VA_X.dll文件以管理员身份运行cmd,具体方法为:在搜索栏输入cmd,右键以管理员身份运行。输入 re...

2019-09-04 19:24:03 8013 2

原创 Python基本环境配置

Python基本环境配置安装Python3.6Ubuntuapt-get install software-properties-commomadd-apt-repository ppa:jonathonf/python-3.6apt-get updateapt-get install python3.6创建软连接which pythoncd /usr/binrm...

2019-09-01 11:44:38 185 1

原创 Git简单使用

使用Git安装Git下载GitGit使用GitHubThe world’s leading software development platform · GitHubgit基本命令下载代码 git clonegit clone + 地址查看状态 git status添加代码 git add添加所有新文件git add .忽略文件 ignore创...

2019-09-01 10:22:11 113

原创 Nginx虚拟主机配置

Nginx虚拟主机配置Nginx虚拟主机配置步骤配置IP地址绑定IP地址与虚拟主机IP地址的配置主机IP地址的配置ifconfig 网卡名 192.168.x.x netmask 255.255.255.0虚拟主机(分设备)IP地址的配置ifconfig 网卡名:1 192.168.x.x broadcast xx.xx.xx.xx netmask 255.255...

2019-08-31 11:24:53 100

原创 Nginx的配置文件详解

Nginx的配置文件详解默认配置文件详解# 设置用户#user nobody;# 工作衍生进程数worker_processes 1;# 设置错误文件的存放路径#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;# 设置pid存放路...

2019-08-31 11:24:16 84

原创 Nginx简单安装

Nginx文章目录NginxNginx安装配置1. 下载Nginx2. 解压并安装3. 测试是否安装成功Nginx的启动与停止1. Nginx的启动2. Nginx的停止3. Nginx的重启Nginx安装配置1. 下载Nginxnginx: downloadwget http://nginx.org/download/nginx-1.17.3.tar.gz2. 解压并安装ta...

2019-08-31 08:40:27 89

原创 课程大作业

状压DP拿例1举例,一共有三种课程作业。作业名称 截止时间 需要时间Computer 3 3English 20 1Math 3 2我们使用state表示完成的作业状态,001表示完成第一个作业,011表示完成第一个和第二个作业使用cur表示当前的时间,score表示当前扣的分数。...

2019-08-30 22:22:29 676

原创 海贼王之伟大航路

题目链接思路:基本状压dp看题目知道此题求的是最短哈密顿路径,也就是一条从1到n的经过所有点的最短路径。我们可以使用状态压缩,使用一个二进制数state代表一种状态,state代表经过的所有点的集合。例如state=1,代表只经过1号点。state=3(二进制为0011),代表经过1号点和2号点。state=5(二进制为0101),代表经过1号点和3号点。state=6(二进制为0...

2019-08-22 23:55:55 917

原创 Dividing the Path

思路:从左边往右边考虑,F[x]为区间[0,x]的解。因此所求为F[L]。首先可以推断出,以下几点x 为偶数,因为洒水是以原点为中心画圆,所有直径不可能为奇数。F[x] = F[y]min + 1, y = [x-2B, x-2A]。 因为半径为A——B,所有只有x-2B 到 x-2A 之间才能通过再加一个点达到x。那么如何快速求得[x-2B, x-2A]中的y,使得F[y]最小?需要...

2019-08-22 17:03:04 295

原创 Blocks

题目链接思路:dp[i][j][len] 表示从i到j个大块,并且右边有长度为len的与第j个块颜色相同的块。初始为dp[0][j][0]。从右边开始考虑,也就是从第j个块开始考虑,如果将第j个块直接消掉,结果为dp[i][j-1][0]+ (len[j]+len)*(len[j]+len)如果考虑左边有一个颜色块k与第j块相同能与之合并,结果为dp[i][k][len[k]+len] ...

2019-08-18 19:37:04 149

Debug资料.zip

汇编语言Debug工具,包含Debug.exe以及dosbox。 安装教程:https://blog.csdn.net/canhelove/article/details/100604335

2019-09-07

VC6 With VAX.zip

VC6绿色版+番茄助手绿色版 win10亲自安装使用 安装教程:https://blog.csdn.net/canhelove/article/details/100545515

2019-09-04

空空如也

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

TA关注的人

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