- 博客(25)
- 资源 (14)
- 收藏
- 关注
原创 AES128算法C语言实现(附每轮执行结果以供调试)
关于AES128算法的文章网上已经很多了,之所以要写这篇是因为前两天自己在写代码调试的时候遇到一些问题,底层函数单独调试的时候是好的,但是综合在一起执行10轮操作以后总的结果却是不对的,所以一下子很难定位问题出在哪里,为了帮助遇到相同问题的朋友,特此把我每轮执行的结果都贴出来,给大家一个参考。首先分享一些AES的技术要点,关于数学理论就不多说了,要彻底理解伽罗瓦域在二进制世界里的工作原理相信没点天赋还真的不行,所以这里我只说结论和如何应用这些结论。关于AES的乘法(在列混合操作中要用到矩阵乘法),A
2021-07-23 13:51:22
8009
1
原创 关于裴蜀公式的一些思考
最近在看有限域相关的资料,相信如果你要深究有限域的相关理论,肯定绕不开一个著名的定理就是“裴蜀定理”。关于为啥集合{1,2,3...n(质数)}必存在乘法逆元就用到了此定理。“裴蜀定理”说,对于任意两个整数x,y,假设他们的GCD(最大公约数)为D,则肯定存在a,b两个整数使得ax+by=D成立搜了百度,已经有一些证明,但是证明思路太过高深,无法直观的从头理解证明的思路,这里整理了一些自己的思考,以免遗忘,特做些笔记。首先,因为D是x和y的GCD,所以可以假设x=jD,y=kD,则ax+by=a
2021-05-08 16:07:22
502
原创 H桥的快速衰减为啥比慢速衰减快?
最近项目用到H桥电路,网上看了几篇介绍的文章写得都挺好的,但是当时看的时候对“快速衰减”和“慢速衰减”略有疑问,如下图所示,快速衰减时为啥衰减的比慢速衰减要快?从图上看,快速衰减时电机相当于充当了发电机,成了一个电源,这个发电机和系统内原来的电源正正相连,负负相连,那问题来了,为啥这样就能快速衰减了?当时觉得电流流进电源所以就快速衰减了?貌似有点说不通,但后来想明白了,特此记录一下,以免忘记。其实,因为一个系统里不止有H桥这部分的电路,还有其他部分的电路和H桥一样挂在电源+-极之间,而快速衰减时,H桥充
2021-02-10 09:42:44
2609
3
原创 信号反射系数计算
最近看了几篇关于信号反射的文章,对于信号反射系数的推导有点疑惑,经过思考,将自己的理解记录如下,以防遗忘。关于信号反射产生的原因这里不再累述,百度一下即可,这里主要描述一下反射系数推导所用的模型。假设有两段阻抗不同的导体R1和R2连接在一起,信号从左往右,即从R1往R2传输,求反射系数。我们知道R1,R2中的电流I入= U入/R1 ①I过= U过/R2...
2019-06-05 15:57:28
18954
6
转载 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这
2016-05-03 13:55:18
345
转载 [C++]《Windows核心编程》读书笔记
第1章 错误处理1. GetLastError返回的是最后的错误码,即更早的错误码可能被覆盖。2. GetLastError可能用于描述成功的原因(CreatEvent)。3. VS监视窗口err,hr。4. FormatMessage。5. SetLastError。第2章 字
2016-01-05 13:37:58
1145
转载 VS2010发布、打包安装程序(超全超详细)
1、 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”:命名为:Setup1 。这是在VS2010中将有三个文件夹,1.“应用程序文件夹”表示要安装的应用程序需要添加的文件;2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程
2015-12-24 16:27:18
856
转载 创建用户界面线程
与工作者线程不同的是,用户界面线程通常用于处理用户的输入,响应用户产生的消息。为了建立一个用户界面线程,需要从CWinThread引出自定义的类,并将该类的运行时信息传给用户界面形式的AfxBeginThread函数,以便创建用户界面线程。一般来说,用户界面线程的创建过程需要先从基类CWinThread中派生出用户自定义的新类,再使用AfxBeginThread函数创建线程。【范例17
2015-12-20 10:38:23
705
转载 MFC的消息循环
MFC的消息循环 消息分为队列消息(进入线程的消息队列)和非队列消息(不进入线程的消息队列)。对于队列消息,最常见的是鼠标和键盘触发的消息,例如WM_MOUSERMOVE,WM_CHAR等消息;还有例如:WM_PAINT、WM_TIMER和WM_QUIT。当鼠标、键盘事件被触发后,相应的鼠标或键盘驱动程序就会把这些事件转换成相应的消息,然后输送到系统消息队列,由Win
2015-12-20 10:09:59
822
转载 VC中线程的创建与消息传递
一、MFC中创建1、线程函数声明UINT ThreadFunc(LPVOID lpParam){ LARGE_INTEGER litmp; LONGLONG QPart1,QPart2;; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (dou
2015-12-18 22:48:46
893
转载 C字符数组与字符串
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定
2015-12-01 15:15:17
325
转载 C字符串操作备忘
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长
2015-12-01 15:12:53
350
原创 MFC的CreateTimerQueueTimer和timeSetEvent两个高精度定时器的比较
最近项目需要搞个上位机发送CAN报文(一种车载通信协议),需要用到高精度定时器,所以看了一些网上和MSDN上关于定时器的介绍,最终实验了两种timer,一个是CreateTimerQueueTimer,另一个是timeSetEvent,下面是对两种timer的创建过程和实测结果,留以备忘。 MSDN中的【Multimedia Timers】-->【About Multimedia Time
2015-10-17 11:05:13
8210
2
转载 C和C++混合调用
典型的,一个C++程序包含其它语言编写的部分代码。类似的,C++编写的代码片段可能被使用在其它语言编写的代码中。不同语言编写的代码互相调用是困难的,甚至是同一种编写的代码但不同的编译器编译的代码。例如,不同语言和同种语言的不同实现可能会在注册变量保持参数和参数在栈上的布局,这个方面不一样。为了使它们遵守统一规则,可以使用extern指定一个编译和连接规约。例如,声明C和C++标准库函数strcyp
2015-10-15 09:56:18
694
转载 SetTimer的用法例子
Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。 Settimer是设置,Ontimer是响应Settimer消息的。SetTimer函数的用法1 )用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer(
2015-10-14 16:14:09
9824
转载 在线程函数中使用主窗口的成员变量
因为线程函数是全局的,而对话框串口的成员变量属于对话框类,所以不能调用,若想使用,可以自定义一个消息,在线程函数中利用SendMessage or PostMessage函数给主窗口发送消息,然后在窗口类的实现文件中定义消息处理函数即可,主要有以下步骤:在对话框类的实现文件中:1.定义消息#define WM_MYMESSAGE WM_USER+1002.在BEGIN_MESS
2015-10-14 14:46:41
874
转载 获得主窗口句柄AfxGetApp()->m_pMainWnd
AfxGetApp()->m_pMainWnd1: AfxGetApp()->m_pMainWnd这个东西就是主窗口的指针。即CMainFrame类的对象指针。很多东西的创建和它有关。以及可以用它来获取视图和文档指针。也可以使用AfxGetMainWnd();或 AfxGetApp()->GetMainWnd()这个函数在程序的任何地方都可以调用的原因是它是一个全局函数,函数返回值是C
2015-10-14 14:39:55
3888
转载 前台线程与后台线程,AfxGetApp->GetMainWnd()与AfxGetMainWnd的不同
CWnd* pWnd = AfxGetApp()->GetMainWnd(); 顾名思义,前台指看得见,既然看得见自然要有窗口,而后台是看不见,看不见可以理解为没有窗口,既然没有窗口,那么用AfxGetMainWnd()取得其窗口句柄,未免有些搞笑,为什么呢?聪明的你想必早已明白,如果你曾经跟踪过AfxGetMainWnd()的调用,会发现它取得的是AFX_MODULE
2015-10-14 13:57:18
899
转载 VC多线程编程
最近看了网上一点关于多线程的文章,感觉受益不少,特整理一下以备以后参考。喜爱按介绍两种创建线程的方法,一个是用Win32 API函数CreateThread创建,一个使用MFC库函数AfxBeginThread创建。 1. 用Win32 API函数CreateThread函数创建线程步骤:建立一个基于对话框的工程MultiThread3,在对话框IDD_MULTITHREAD3_D
2015-10-14 10:00:58
315
转载 __declspec(dllexport)和__declspec(dllimport)
__declspec(dllexport) __declspec(dllexport) 将一个函数声名为导出函数,就是说这个函数要被包含她的程序之外的程序调用。 extern "C" 指示编译器用C语言方法给函数命名。 在制作DLL导出函数时由于C++存在函数重载,因此__declspec(dllexport)
2015-10-09 13:29:21
256
转载 DLL库的Def
http://www.cnblogs.com/yangnas/archive/2010/03/12/1684045.html有时候我们拿到一个dll库却没有相应的导入库又或者是我们有dll库却希望在MinGW或者Cygwin环境下使用该库。这时候必须生成一个dll库的导入库(Win下dll库的导入库默认是以.lib结尾,MinGW下的导入库是以.a结尾)这个转化需要两步
2015-10-09 11:06:22
477
转载 DLL初学者指南
我正在学习DLLs,谈不上对其有什么高屋建瓴的见解;本文只是(通过)编码让你看到并想知道代码是如何运行的。在本文中,我假定你知道如何使用你的编译器特性,比如设置目录路径等等。 为了建立项目,请选择Win32 控制台项目(Win32 Console Application),并且在应用程序设置标签(the advanced tab)上,选择DLL和空项目选项。DLLs可能并不如你想像的那样难
2015-10-09 11:04:23
303
转载 加载DLL
调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法:1. 隐式的加载时链接这种方法需要DLL工程经编译产生的LIB文件,此文件中包含了DLL允许应用程序调用的所有函数的列表,当链接器发现应用程序调用了LIB文件列出的某个函数,就会在应用程序的可执行文件的文件
2015-10-09 10:22:49
382
转载 VB文件读写
vb使用open方法读写文件(一)打开和关闭文件 1、顺序文件 打开顺序文件,我们可以使用Open语句。它的格式如下:Open pathname For [Input |Output |Append] As [#]filenumber [Len = buffersize] 说明: (1)参数pathname
2015-10-08 15:33:11
1908
转载 VB 读写文件
由于FSO对象包含在Scripting 类型库 (Scrrun.Dll)中,所以在使用前首先需要在在工程中引用这个文件,单击“工具”,“引用”,然后在“引用”对话框中选中“Microsoft Scripting Runtime”前的复选框,然后单击“确定”。 要创建FSO对象可以采用两种方法,一种是将一个变量声明为FSO对象类型:Dim fsoTest As New FileSystemO
2015-10-08 15:26:53
767
电感传感器设计指南LDC inductive-to-digital converter
2020-09-29
fmcw_overview_and_signal_chain.pdf
2020-09-24
基于张弛振荡原理的触摸感测电容设计.pdf
2020-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人