自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 python中的选择判断循环语句

def函数名称();print (“函数基本结构”)

2023-07-10 11:08:09 272

原创 pyhon的运算符和字符串格式化方式

单引号定义法 name = 'xiaoming' # 双引号定义法 name = "xiaoming" # 三引号定义法 name = '''xiaoming'''

2023-06-05 17:12:50 541

原创 UE资源加载

硬性引用,即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载。通俗点说,硬引用所表示的资源在引用初始化时就加载进内存,因此硬引用的资源几乎不需要加载方法。在UE4中,如果有一个硬UObject指针属性引用了一个资源(往往在蓝图上设置引用),则加载包含这个属性的对象(放在贴图中,或者从gameinfo等引用)时,就会加载这个资源。UE4的资源,就是在工程文件夹下的哪些非代码资源,比如Content下面的网格,材质,蓝图这些文件,大部分是以uasset作为后缀的UE资源文件。

2023-04-19 11:33:10 565

原创 UE5 热更新方案

C:\UE5.0\UnrealEngine\Engine\Build\BatchFiles\RunUAT.bat 为UE安装路径下脚本文件。在虚幻打包中他只会带入UE的资源文件,而我们要带入的是Json文件,所以需要在这里声明Json文件(基础包的版本文件)所在的路径。C:\Work\AndroidProject\AndroidProject.uproject 为工程路径下可执行程序。执行完成后会在C:\Work\Release\Android_ASTC\下生成apk文件,其就是需要的整包。

2022-10-31 17:18:16 2437

原创 C++命名规则

因为同一作用范围内两样不同的东西不能重名,你可能会随手改掉其中一个的名称,有时干脆以错误的拼写充数,结果就会出现在更正拼写错误后导致编译器出错的情况。采用能表达意图的名称,貌似拉长了函数代码,但要想想看,WORK_DAYS_PER_WEEK比数字5好找得多,而列表中也只剩下了体现作者意图的名称。设想有一个名为Customer的类,还有一个名为CustomerObject的类,它们的区别何在呢?命名的方式应该是以名词为主,清晰的表达类的功能,方法应当以动词为主,表现其做了什么事情,并且得到什么结果。

2022-10-31 17:15:52 530

原创 UE5 使用Spine插件

通过spine插件导入1. 创建一个UE项目2. 将官方库的插件从git上拿下来3. 将git中spine-runtimes/spine-ue4/Plugins文件夹复制到项目目录中4. 将spine-runtimes/spine-cpp/spine-cpp 文件夹复制到Plugins/SpinePlugin/Source/SpinePlugin/Public/ 路径下5. 添加 SpinePlugin to PublicDependencyModuleNames 到项目的 Build.cs6

2022-10-10 00:03:26 2978

原创 JNI实现微博登录

这其实是一种调试的方式,但是我们更多的是在windows上将项目调试好,之后打包放在安卓中查看效果。

2022-10-09 23:59:41 145

原创 安卓调试与Google play打包提交

这其实是一种调试的方式,但是我们更多的是在windows上将项目调试好,之后打包放在安卓中查看效果。

2022-10-09 23:54:28 1473

原创 UE UPL的使用

入口函数:public class GameActivity extends NativeActivity在gameActivity他的入口类为GameActivity ,是继承自NativeActivity,也就是他的页面。

2022-10-09 23:44:52 1870

原创 MetaHumen使用方法总结

1 启动Live Link Curve Debugger2 窗口(Window) 选项,在 开发者工具(Developer Tools) 下面,选择 Live Link Curve Debugger之后在上方选择调试的对象之后,就能看到曲线。

2022-10-09 23:31:46 1889

原创 无线加密技术

无线加密技术概述随着信息技术的不断发展,人们对通信的要求也在不断提升。近年来,由于无线局域网(Wireless LAN)可以提供灵活方便的网络接入而倍受各厂商和众多消费者的青睐。越来越多的机场、餐厅、酒吧都可提供无线接入互联网的服务。使用者只要持有配备WLAN上网卡的笔记本电脑、PDA等移动终端,就可以随时随地地获取信息,实现移动办公。与此同时,保证WLAN的安全性也就成了这项技术的焦点加密算法WEP加密:最早期的加密,十分容易破解tkip的加密算法:增加了key的生成、管理及传递的机制,不再是全

2022-02-24 00:12:41 10770 2

原创 Tasking开发环境的使用和TriCore芯片C和汇编之间相互调用的一些问题

前言Tasking Tricore是一款集成编辑,编译,调试,仿真于一体的集成开发环境,他支持英飞凌32Bit行业领先级芯片,包含所有的TriCore和Aurix芯片,这些芯片主要用于汽车和工业。它支持C,C++,汇编编程,具有一个多核连接器(linker)工程的创建通过new一个project来创建一个新的工程,对他进行名字和芯片的选择,我们就会得到一个可以打印hellow world的工程使用时候遇到的一些问题具体的使用方法就不多说了,主要想说一下我在使用中遇到的一些问题找不到头文件和C

2021-08-11 09:26:42 2976

原创 二进制编码

前言我们都知道,一个程序是=数据结构+算法,如果对应到组成原理或者是硬件层面上来说,算法就是我们的各种计算机指令,而数据结构就是我们对应的二进制数据字符串的表示,从编码到数字其实不仅数字可以用字符串来表示,最典型的例子就是字符串,最早的使用的为英文字符串,加上数字和一些特殊的符号,之后使用8位的二进制,就能表示我们所有的字符了,这个其实就是我们经常说的ASCII码了ascii就好比一个字典,它可以表示不同的数,之后在我们的字符中,数字1也不再是1了。而是31了,如果是两个数字的话则就是两个连续的二进

2021-07-21 23:34:27 1513

原创 动态链接,程序内部的共享单车

前言在之前说过,程序的编译过程是,编译,汇编,链接,前面的两种方式我们已经充分的理解过了,现在我们来说说我们的链接过程,我们很多时候要做到代码的复用,我们就需要链接不同的库。这么来说,我们链接的过程就有点像生活中标准化,模块化的生产,我们通过工厂去生产一致的螺帽,最后通过链接去直接使用他们即可但是,这其中有一个问题就是我们不能为了每一个程序都将零件给他装上,这样实在是太费内存了,就像我们在公路上一样,我们都有出行的需要,但要是给每一个人都配一辆自行车的话,就显得太过拥挤了。动、静链接,共享运行来省内

2021-07-11 14:20:32 107 1

原创 程序装载的问题

前言在上面我们说过了程序在变成机器码的时候。需要通过装载器装载到内存中去,但是这其实还是很多问题,主要是以下两点可执行程序占用的空间应该是连续的,因为程序要一条条的往下执行,所以指令应当连续的储存在一起同时需要加载很多的程序,我们不能让程序自己选择加载到哪。计算机同时会运行多个程序,你不能规定他的地址、为了解决这些问题,我们提出了虚拟内存来概念来解决这个问题在我们执行的程序中,我们看见的都是他的虚拟内存,而我们也只需要去关注他的虚拟内存即可。在不同的程序中,我们可能会看到相同的内存地址,但是他

2021-06-26 11:49:10 114 2

原创 写在最后,在西航的四年

前言四年时间很快,快到昨天好像才收到录区通知书,才刚刚踏入这个校园,对一切都充满着好奇。四年时间又很慢,每天都在盼望着什么时候才能毕业,离开这个没有空调,没有网的地方。现在想来,四年真的发生了好多事情,虽然学校很不好,但是这里面的大多数人还是那么让人怀念。入学想着高三暑假的时候,周围人的陆续都收到自己学校的通知书,而自己的通知书迟迟不到时候,现在觉得都能看出一些端倪了,这个学校办事效率很低,管理很是混乱,不过还是等来了。虽然没有别人邮寄时候都带着学校的名称,只是一个EMS的标准封面,但在打开里面的

2021-06-14 01:21:25 1021 3

原创 程序为什么无法同时在windows的linux下同时运行

前言前面我们说过,一个程序是通过编译,汇编最后变成我们需要的机器码的,同样不同的CPU会有不同的机器码,但是这时候我们就有了疑问,既然是相同的CPU,为什么我们生成的机器码不能同时在linux和windows下同时运行呢。这就要说到我们的最后一个环节了,就是链接。编译,链接和装载上面说过程序是通过汇编,编译,链接,最后变成可执行程序的,但是我们仔细的去看他的汇编代码,就会发现一些不同,我们来看一下,下面是两个.c文件// add_lib.cint add(int a, int b){ r

2021-06-09 16:36:17 529

原创 详解栈溢出

前言在我们平时开发的过程中,经常会出现stack overflow的情况导致程序崩溃,通常的原因都是无限的递归调用导致的,也就是无限的调用函数,导致空间用完,可是为什么非要使用栈呢,它内部是怎么运行的,栈的空间一共有多大呢,在下面会一一的详解为什么要使用程序栈?我们先来看一段代码// function_example.c#include <stdio.h>int static add(int a, int b){ return a+b;}int main(){

2021-05-28 12:46:02 5465

原创 计算机中的指令跳转

前言在上一章中说了,高级语言为什么怎么样成为计算机能够读懂的语言,下面就来说说这些计算机能够读懂的语言中,他们究竟是如何设计的CPU是如何执行指令的?在我们现实常用的CPU中,有几百亿的晶体管通过电路起来,在逻辑上我们可以认为CPU就是由一个个寄存器所组成,而CPU的内部,是由多个触发器或者锁存器组成的简单电路。N个触发器或者锁存器就能组成一个N位寄存器在CPU中有很多功能不同的寄存器PC寄存器,他是指令地址寄存器,是用来存放下一条需要执行的计算机指令的内存地址指令寄存器,是用来存放当前正在执

2021-05-22 18:40:05 1522

原创 计算机指令——从纸带说起

前言其实很多时候我都会感叹计算机的伟大,通过一个个电路就完成了如今各种系统,通过各种各样的语言就能够指挥设备完成不同的动作,当写下第一个hellow world的时候我就在想他什么怎么出现,今天搞明白其中的原理,我在这和大家分享打孔卡在早期的计算机中,并不是使用高级语言来来操控机器,而是通过一种打孔卡来,它上面存在着一个个0,1数字,人们通过将他打穿,来代表指令,之后再将他们交给计算机去处理,就完成了计算机的控制。那我们计算机为什么能认识我们的高级语言,并将他变为了一种一堆0,1码,同样这些0,1

2021-05-21 16:51:17 1447 1

原创 计算机的”性能“

前言性能这个词在很多领域都出现过,比如一个跑车的性能,一个家电的性能,一个电脑的性能,其实在我看来一个东西的性能,就是他在某一方法的能力,比如跑车最重要的就是速度,一个计算机则是他的运行速度,在计算机组成原理中理解计算机怎么运行,为什么要解决的事情的时候,很多时候就是他的性能什么是性能计算机的性能有两个标准来衡量,第一个是响应时间或者执行时间,要提升响应时间这个指标,可以理解为让计算机跑的更快,还有一个则是吞吐率或者带宽,吞吐率则为跑的更快所以说计算中执行一个程度需要花费的时间越少,则他的性能就越好

2021-04-23 17:51:22 371

原创 冯诺依曼体系结构

计算机的基本组成如今我们在生活中用的大多数都为品牌机,其实并不知道他实际的结构,其实我对这方面一直充满着兴趣,就来学习了一下这些基本的结构其实计算机最基本的结构并不是我们每天能看到的鼠标、键盘这些东西,而是CPU,内存和主板CPU:他作为计算机中最昂贵的部件,它主要起着运算的作用内存:他是储存数据和程序用的装置,他需要被程序读取,还要写回内存主板:主板的作用其实就是就是桥梁的作用,他是连接CPU和内存的设备,我们通常使用CPU和内存是插在主板上的,主板有着两大组件,一个为芯片组,一个为总线,芯片

2021-04-23 00:02:31 348

原创 ARP(地址解析协议)协议和RARP协议(逆地址解析协议)

ARP协议地址解析协议,及ARP,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息是将包含将包含目标IP地址的APR请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址,受到返回消息的时候将IP地址和物理地址存入本机ARP缓存中并保留一定的时间工作原理每个主机都会在自己的ARP缓存区中建立一个自己的ARP列表,以表示IP地址和MAC地址之间的对应关系当源主机要发送数据的时候,有的话直接发送,没有的话他会向所有的主机发送ARP数据包,包含的内容有源主机IP地址,源主机

2021-04-09 21:15:17 894

原创 近期笔记和心情总结

心情总结秋招嵌入式失利,是因为我确实在硬件方面学的很差,春招我改投软件方面,这些天挺失望的,简历一份份的被拒,很多都不给一次笔试的机会,我也知道是为什么,因为学历不符,专业不符。这些天大家考研上岸的消息不断传来,我一遍遍的在内心质问自己,我真的选错了吗?我是不是应该去考研,而不是像当时那样一腔热血,义无反顾的扎在IT里,觉得自己只要学的够好就可以无视学历和专业,或者是我自己的对判断还是不足,自己无法做到那么顶尖,只是定了一个高大上的目标。我一遍一遍的质问着自己,为什么?我不断翻前面的博客看我一年半以来总

2021-03-22 11:40:54 75

原创 简单理解B树和B+树

前言前面我们说了红黑树,他是一种特殊的搜索树,但是由于他只是二叉树,所以这就导致他在大量的数据面前深度过高,同时会造成大量的磁盘空间浪费,所以我们又研究出来了B树和B+树B树他是人们早期的一种设计,他打破了二叉树的方式,它可以有多个分支,使得磁盘空间可以重分利用,同时减少了IO操作定义:结点最多有M颗子树,M-1关键字除了跟结点和叶子结点处,他的每个结点至少有(M/2)个子节点,向上取整(分裂的时候分开,则至少两颗子树)若根结点不是叶子结点,则至少有两颗子树一颗标准的B树如下图B-t

2021-03-04 22:11:52 130 2

原创 简单理解红黑树

前言在计算机领域,数据的处理能力是非常重要的,查找作为一种对数据处理一个很重要的能力,我们就先来看看今天要说的红黑树查找说到查找我们很快就能想起来很多常用的查找方式,比如说遍历,二分查找,哈希等,其中我们知道哈希在一定情况下可以达到O(1)的时间复杂度,速度可谓是非常之快,但是他也有他的缺点就是不能范围查找,所以我们就来说说今天要说的红黑树。二叉查找树说到红黑树,我们不得不先说一下二叉查找树,因为红黑树是在他的基础上建立的,下图就是一颗二叉查找树他有着以下特点左子树的上的值永远小于或等于右

2021-03-04 10:21:12 107 1

原创 简单理解哈希表和哈希冲突

前言哈希表的查找方式作为查找比较快的一种,我们很有必要去了解一下他的基本原理哈希表定义:哈希表是根据关键码值直接进行数据访问的数据结构,它通过把关键码映射到一个位置来访问记录,这个映射函数叫哈希函数,存放记录的数组叫哈希表最简单的哈希查找当知道数据的范围为0~99时,使用哈希的思想就能很快的统计出来数据的个数void hash_table (int table[],int arr[],int len){ for (int i=0;i<len;i++) //这就是借助数组的下标统计

2021-03-01 11:39:28 129

原创 内存的智能管理—智能指针

前言我们在使用C和C++进行开发的时候,申请堆区内存是必不可少的,但是很多时候,我们经常忘记释放他导致内存泄漏,从而导致程序崩溃,又或者在尚未使用完成的时候释放,从而导致出现野指针,都是非常危险的现象,所以我们在C++11的标准中提出了智能指针的概念,他就是一种可以帮我们自动释放内存的存在共享智能指针 - shared_ptr他是使用最多的智能指针,它可以让多个指针指向同一片内存,同时在这片内存指向变为0的时候,他就会被释放他有三种构造方式//直接构造shared_ptr<int>p

2021-02-23 20:33:15 192

原创 shell脚本

前言用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。基本概念脚本就是一些命令的集合,通常有选择,控制,循环三种方式# 使用#做注释#! /bin/bash //指定使用脚本那命令。。。写完这些以后需要增加执行权限,如chmod 777 3.cshell中的变量shell和c不一样,他不是一种强类型的语言,他直接可以进行赋值value=“11111”value=1位置变量就是类似于main函数的传参,位置分分别为0,1,2,3

2021-02-19 21:46:32 82

原创 ASN.1-报文编解码

前言由于跨平台或者跨语言数据传输中存在操作系统不同,大小端问题,字节对齐不一样等各种原因,所以我们需要对数据进行序列化处理几种常用的序列号方式XML类似于HTML,与HTML很相似,但是用它来序列化对象的时候,就显得很复杂JSON使用起来很简单,他的产生来自于一种关联数组,其本质是采用“键值对”的方式描述对象Protocol Buffer是一个高效的数据化数据存储格式,用于结构化数据串行化,很适合做数据储存或RPC数据交换格式ASN.1抽象语法标记ASN.1定义:他是描述在网络上传输信息

2021-01-24 11:28:46 1898 1

原创 基于epoll的web服务器

前言我们在大量并发的时候epoll有高的性能,所以我们选择用他去做一个BS模型的web服务器web服务器网络上是epoll并发,在解析http命令是下面的思路具体的主要看代码的思路#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h> #include <sys/socket.h>#include <ar

2020-12-28 23:26:48 228 1

原创 http超文本传输协议

前言http和html前面ht都是超文本的意思,所以他们两个是非常紧密的一对,我们可以认为http就是为了传输html这样的文件存在的,http位于应用层,偏于解释。他主要可以分为请求消息和响应消息http响应消息我们要开发的服务器与浏览器之间通讯就是采用的http协议我们可以使用抓包工具来获取一下我们请求信息,他其中最重要的为四部分请求头:说明请求的类型,要访问的资源,以及使用的版本请求行:说明服务器使用的附加信息,都是键值对空行:不能省略,而且是\r\n结尾请求数据:表明请求的特定内

2020-12-26 17:23:01 140

原创 Html语言基础

前言Html语言是超文本标记语言,在计算机中以.html或者htm作为扩展名,可以被浏览器识别,就是经常见到的网页Html的基本组成开始和结束,属于html的跟标签头部标签,头部标签一般有主体标签,一般用于显示内容<html> <head> <title>这是一个标题</title> <!——指定编码为utf-8--> <meta http-equiv="content-Type" content=

2020-12-23 17:10:17 71

原创 算法题:斐波那契数列

求斐波那契数列的第n项定义:这个数列从第3项开始,每一项都等于前两项之和,其中第一项为0,第二项为1这是一个很经典的递归试题,我们很经典的写法如下方法一,递归unsigned long long Fibonacci(unsigned int val){ if (val == 0) return 0; if (val == 1) return 1; return Fibonacci(val - 1) + Fibonacci(val - 2);

2020-12-23 10:30:49 364

原创 libevent的基本使用

前言libevent是一个用C语言编写的,轻量级的开源高性能事件通知库,主要有以下几个特点:事件驱动,高性能,轻量级,专注于网络,支持多平台,支持多种I/O复用技术,select,poll,epoll等,支持I/O定时器和信号事件,注册事件优先级什么叫I/0多路复用下面举一个例子,模拟一个tcp服务器处理30个客户socket。假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C、D。。。这中间如果有一个

2020-12-22 16:12:35 1268

原创 MYSQL常用的API接口

前言访问MYSQL服务器,我们通常都是去使用musqlclient库,所以我们很有必要去了解一下这个库的作用,话不多说,我们直接开始来了解这个流程初始化MYSQL * mysql_init(MYSQL * mysql)其中MYSQL是一个typedef的结构体,是一个很重要的操作,对系统的初始化,有这个才能对后面的进行操作MYSQL *mysql mysql_init(NULL);连接数据库,关闭数据库他的结构原型,我们可以直接拿过来MYSQL *mysql_real_connect(MY

2020-12-20 12:19:31 3625 1

原创 算法题: 去除数组中空格

实现一个函数将字符串中的空格替换成#20输入:ni hao ya输出:ni%20hao%20ya其中我们有两个思路,一个是O(N²)的复杂度,将数组遍历,然后在空格处插入#20,但是每次插入都需要后移内存,十分的费时间,所以我们还是从中寻找规律我们先遍历一遍数组,找出他其中的空格数量,用两个指针,一个指向数组尾部,一个指向数组尾部+最后要的偏移量,然后向前遍历,两个指针一起向后移动,后面的指针不断的去拷贝前面指针的数据,当遇到空格的时候,后面的指针去做赋值操作#20注:其中需要注意的就是数组越

2020-12-17 14:42:35 1027

原创 算法题:寻找有序的二维数组中的值

在一个二维数组中,每一行按照从左到右,从上到下递增的顺序排序,完成一个函数,可以搜索其中的数1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15二维数组如上输入 数字 6输出 true我们看到题可以试图从中寻找他的规律,他是从上到下,从左向右依次递增的,我们可以使用特殊点右上角那一个数,他是一行中最大的数,同时是一列中最小的数,用它和目标值进行比较,如果他大于目标值说明这一列中没有他需要的值,如果他小于这个值,说明这一行中没有他需要的值(因为他是这一行中的最大值)代

2020-12-16 11:09:45 101

原创 算法题:求连续子数组最大和

求连续子数组最大和输入一个整形的数组,数组中有正数也有负数,数组中一个或者多个组成一个子数组,求子数组和中的最大值输入 1,2,-3,5,6,3,-2,3,-10,2输出 15输入1,2,3,5,6,3,2,3,10,2输出 35-2, - 4,-3,-6,-6,-8,-2,-1,-10,-2输出 -1思路寻找规律,发现数组只要相加不小于等于0,就可以继续相加,否则从0开始int arr_max(int buf[],int len){ if (buf == nullptr

2020-12-15 15:58:01 179

原创 算法题:判断一个数组中数据是否有重复,其中元素大小不超过len-1

判断一个数组中数据是否有重复,其中元素大小不超过len-1例子 1,2,3,4,5,5有重复2,3,1,4,5无重复暴力求解法,时间复杂度O(n²)直接遍历他所有的数据,看是否重复bool arr_same(int buf[],int len){ if (buf == nullptr || len <= 0) return false; for (int i = 0; i < len - 1; i++) { for (i

2020-12-14 23:30:50 537

空空如也

空空如也

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

TA关注的人

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