- 博客(164)
- 资源 (3)
- 收藏
- 关注
原创 C语言dbm和mW相互转换算法
double dbmToMw( double dbm ){ double mW; mW = dbm/10; mW = pow( 10.0, mW ); return mW;}double mwToDbm( double mW ){ double dbm; dbm = 10*log10(mW); return dbm;}
2020-05-13 14:19:20
1269
原创 git基本操作
基本概念:treemeans工作区存放当前写的代码暂存区临时存储,提交时需要先将修改增加至此本地库存储着历史提交的版本,可用于历史版本恢复将远端的更改拉取到本地git pull将工作区的修改增加至暂存区git add <file>将暂存区的数据提交至本地库git commit -m "log message"将本地库的更改...
2020-04-01 16:26:01
288
原创 CRC校验代码简单注解
unsigned short CRC16_CCITT(unsigned char *puchMsg, unsigned int usDataLen){ ;//根据CRC16的标准选择初值CRCIn的值 unsigned short wCRCin = 0x0000 unsigned short wCPoly = 0x1021; unsigned char wChar = 0; whil...
2020-03-26 15:33:18
619
原创 shell顺序执行
如果只是简单的需要执行多个命令,只需要在多条命令之间加上命令分隔符即可,如下:(先后打印hello和world) 若后面的命令执行需要依赖于前面的命令成功执行,则可以使用&&符号,如下:(删除一个不存在的文件,然后创建一个新文件) 若后面的命令执行需要依赖于前面命令的错误执行,则可以使用||符号,如下:(创建一个文件,删除,第一次删除成功,&&后面的...
2020-01-14 14:29:31
1005
原创 Makefile学习笔记(一)
make是如何判定什么时候需要编译什么时候不需要编译的: Makefile的格式如下:targets ... : prerequisites ... command make执行时会比较targets(目标文件)和prerequisites(依赖文件)文件的修改日期,如果prerequisites中有文件的修改日期比targets中文件的日期新,或者target不存在时,make才会...
2020-01-14 11:33:46
180
原创 利用autohotkey倒换鼠标的前进和后退键
之前在淘宝上买了一个鼠标,但是前进键是在后面,后退键在前面,一直感觉很不舒服,想到了可以用autohotkey把两个键重新“换一下“。 autohotkey具体实现代码:XButton1:: Send {XButton2}ReturnXButton2:: Send {XButton1}Return 实现的功能就是按鼠标的前进键会产生后退键的效果,反之亦然。具体autoh...
2020-01-08 09:56:02
1629
原创 堆排序学习笔记
堆排序的性质:堆排序的时间复杂度是O(n lgn)。堆排序具有空间原址性:任何时候都只需要常数个额外的元素空问存储临时数据。堆排序引人了另一种算法设计技巧:使用一种我们称为“堆”的数据结构来进行信息管理。堆不仅用在堆排序中,而且它也可以构造一种有效的优先队列。堆的分类以及其分类特性:二叉堆可以分为两种形式:最大堆和最小堆。在这两种堆中,结点的值都要满足堆的性质,但一些细节定义则有所差异...
2020-01-03 14:58:33
195
原创 linux目录项的状态(《linux内核设计与实现》笔记)
目录项对象有三种有效状态:被使用,未被使用和负状态。被使用 一个被使用的目录项对应一个有效的索引节点,并且该对象存在一个或多个使用者。 一个目录项处于被使用状态,意味着它正被VFS使用并且指向有效的索引节点,因此不能被丟弃。未被使用 一个未被使用的目录项对应一个有效的索引节点,但是VFS当前并未使用它。该目录项对象仍然指向一个有效对象,而且被保留在内存中以便需要时再使用它。 由...
2019-12-20 11:38:16
255
原创 无法向flash中写数据
问题:向flash中写数据的时候发现flash被写了之后,写入的值和预期值不一样,写入的值只会和原来的值相等或者比原来的值小。 原因:flash只写0,不写1,因此需要先对flash进行擦除,擦除会将flash中的内存都变成ff,在这种情况下才能正常写入。 解决方法:先擦除flash要写入内存的部分,而后再开始向flash内存中写数据。...
2019-11-21 15:55:20
1654
3
原创 在分配内存中使用sizeof确定分配空间大小的优点
sizeof是在编译期间计算的,因而不会带来运行时性能上的损失。 sizeof时可移植的,在不同的环境 下重新编译,编译器将自动修改sizeof计算出来的值。 sizeof可以用于计算自定义的结构体的大小。 --- 《code complete》...
2019-11-12 11:04:37
440
原创 FTP协议active模式上传和下载文件流程
正常传输状态下的ftp的active模式的客户端下载文件“流程图”。 TYPE中指定的参数指的是ASCII模式或者binary模式 具体数字含义可以百度FTP应答码&响应码 不知为何我使用的ftp版本传输的东西全都是直接用tcp传的,没有加密,如果服务器上有ftp,最好给ftp服务器设立一个专门的用户,只给少数文件的权限,不然就太不安全了。 正常传输状态下的ftp的a...
2019-10-31 14:35:48
1095
原创 函数声明和函数原型
在ANSI C中函数原型和函数声明是一样的;但是在K&R C中函数只有声明,并无原型,原型是ANSI C中加入的。 图自《C专家编程》8.4原型之痛
2019-09-30 09:19:42
502
原创 二进制表示中质数个计算置位(LeetCode刷题 C语言)
题目描述:给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 ...
2019-09-15 22:18:25
460
原创 位域运算符
如果已经知道某一个值永远不会超出某一个范围时,可以结合位域运算符(Bit Field)更加高效的使用内存。未用位域运算符时:#include <stdio.h> // Space optimized representation of the date struct date { // d has value between 1 and 31, so 5 b...
2019-09-03 16:02:37
1089
原创 C++文件操作:按行读取复制到另一个文件
由于对C++的文件操作并不是太熟练,因此复习了一下顺便写了一个小例子用来巩固,顺便解决了换行的问题:#include <iostream>#include <string>#include <fstream>using namespace std;int main(int argc, char *argv[]){ string buf0,...
2019-08-07 16:14:33
1836
原创 QTimeLine的使用案例
效果图: 实现鼠标点击滑动切换页面,控件是在网上扒别人写好的,自己填了几个接口,颜色改了改。 这个是从之前的大作业中提取出来的,控件没有实际意义,只是为了演示滑动效果。本案例QTimeLine使用流程: 初始化:new一个对象 QTimeLine(int duration = 1000, QObject * parent = 0) //第一个参数设置的是持续时间, //...
2019-08-03 17:36:51
690
原创 excel统计各个分数段的人数
最近在录入成绩,要求分数满足正态分布,于是就在excel中弄了一下,下面是实例: 注意: 数据是rand函数随机生成的,没有实际意义。 在最后的执行函数中选择区域之后按下F4或者在每个区域面前加一个$符以表明为绝对寻址,取值范围用相对寻址。 在最后的执行函数中因为是矩阵计算,需要按CTRL+SHIFT+ENTER才能得到所示结果。 concatenate是连接字符串的函数...
2019-07-05 19:21:25
2854
原创 开发问题笔记
问题1:可以ping通局域网,但是无法ping通外网,显示网络无法抵达。 解决:未设置默认路由:运行route add default gw 192.168.1.1添加默认网关即可。 问题2:开发板的linux系统时间不同步 从http://doolittle.icarus.com/ntpclient/上下载一个ntpclient。 修改Makefile CC = arm-n...
2019-05-27 17:05:00
155
原创 qt学习笔记之数据库
实现拖动事件:设置接收拖动事件:setAcceptDrops。重载dragEnterEvent、dragLeaveEvent和dropEvent。
2019-05-14 21:46:54
322
原创 qt学习笔记
Qt如何自定义类添加到窗口中:新建类,继承QWidget,然后使用layout的addWidget接口即可随意添加进去。 可以在ui编辑器中给pushbutton和主窗体设置icon,给label设置pixmap。 使用MDI Area在一个区域中添加多个窗口。 使用QFileDialog::getOpenFileName函数获取打开文件的名字。 使用QFileInfo可以通过...
2019-05-13 21:31:30
146
原创 数据传输(UNIX环境高级编程笔记)
只要建立连接就可以使用read和write来通过套接字通信。但read和write能够做的只有交换数据,无法提供更加复杂的操作。 函数send和write很相似,但是可以指定标志来改变处理传输数据的方式。#include <sys/socket.h>int send(int sockfd, const void *buf, size_t nbytes, int fla...
2019-05-07 22:23:04
198
原创 建立连接(UNIX环境高级编程笔记)
如果要处理一个面向连接的网络服务,在开始交换数据之前,需要在请求服务的进程套接字(客户端)和提供服务的进程套接字(服务器)之间建立一个连接。使用connect函数建立连接。#include <sys/socket.h>int connect(int sockfd, const sockaddr *addr, socklen_t len); ...
2019-05-07 21:16:23
256
原创 寻址(UNIX环境高级编程笔记)
字节序 如果处理器架构支持大端(big-endian)字节序,那么最大字节地址出现在最低有效字节(Least Significant Byte, LSB)上。小端(little-dndian)字节序相反,最大字节地址出现在最低有效字节上。 下图显示了一个32位整数的字节是如何排序的: 网络协议指定了字节序,因此异构计算机系统能够交换协议信息而不会被字节序所混淆。 TCP/IP协议...
2019-05-07 20:44:35
314
原创 qt学习笔记(绘图、关闭、尺寸改变事件)
在paintEvent函数中:QPainter painter(this);painter.drawPixmap(0, 0, this->width(), this->height(), QPixmap("../painter/temp.png"));//使用painter目录下的temp.png图片填充整个窗口 painter.drawPixmap好像无法绘制bmp。尝...
2019-05-05 21:50:51
1158
原创 qt实现两个窗口互换
右键单击项目名,添加文件选择widgetfirst.h#ifndef FIRST_H#define FIRST_H#include <QWidget>#include "second.h" //包含第二个窗口的头文件namespace Ui {class first;}class first : public QWidget{ ...
2019-04-28 21:50:20
1184
原创 linux网络编程中协议簇AF_和PF_的区别
在socket.h文件中有对协议簇的宏定义,如下:/* Protocol families, same as address families. */#define PF_UNSPEC AF_UNSPEC#define PF_UNIX AF_UNIX#define PF_LOCAL AF_LOCAL#define PF_INET AF_INET#define PF_AX...
2019-04-28 16:42:23
4944
3
原创 套接字描述符(UNIX环境高级编程笔记)
套接字是通信端点的抽象。应用程序用套接字描述符访问套接字。套接字描述符在UNIX系统中被当做是一种文件描述符。许多处理文件描述符的函数可以用于处理套接字描述符。 创建套接字需要调用socket函数:#include <sys/socket.h>int socket(int domain, int type, int protocol); ...
2019-04-28 16:21:23
855
原创 zigbee学习笔记之内核入门(zstack)
内核先进行一系列硬件初始化。然后进行osal的初始化。调用osal_init_system()函数初始化系统。 在osal_init_system()函数中,先初始化内存和定时器等,再调用osalInitTasks()函数进行任务的初始化。在OSAL_GenericApp.c中已经定义了各个任务的运行函数:typedef unsigned short (*pTaskEventHandle...
2019-04-28 15:23:23
362
原创 POSIX信号量(UNIX环境高级编程笔记)
POSIX信号量机制是3中IPC机制之一,3中IPC机制源于POSIX.1的实施扩展。 POSIX信号量意在解决XSI信号量接口的及格缺陷。 ● 相比于XSI接口,POSIX信号量接口考虑到了更高性能的实现。 ● POSIX信号量接口使用简单:没有信号量集,在熟悉的文件系统操作后一些接口被模式化了。 ● POSIX信号量在删除时表现的更加完美。删除时操作能继续正常工作直到该信号...
2019-04-27 17:49:22
349
原创 共享存储(UNIX环境高级编程笔记)
共享存储允许两个或者多个进程共享一个给定的存储区。因为数据不需要在客户进程和服务器进程之间进行复制,所以这是最快的一种IPC。通常,使用信号量同步共享存储访问。 调用的第一个函数通常是shmget,它获得一个共享存储标识。#include <sys/shm.h>int shmget(key_t key, size_t size, int flag); ...
2019-04-27 15:36:50
425
原创 信号量(UNIX环境高级编程笔记)
信号量是一个计数器,用于为多个进程提供对共享数据对象的访问。 为了获得共享资源,进程需要执行下列操作: (1)测试控制该资源的信号量。 (2)若此信号量的值为正,则进程可以使用该资源,在这种情况下,进程会将信号量值减1,表示它使用了一个信号量的资源。 (3)否则,若此信号量的值为0,则进程进入休眠状态,直至信号量值大于0,进程被唤醒之后,将返回步骤(1)。 常用的信号量形式...
2019-04-27 15:06:56
657
原创 消息队列(UNIX环境高级编程笔记)
消息队列是消息的链接表,存储在内核中,由消息队列标识符标识。 msgget用于创建一个新队列或打开一个现有队列。msgsnd将新消息添加到队列尾端。每个消息包含一个正的长整型的字段、一个非负的长度和实际数据字节数,所有这些都在消息添加到队列时,传送给msgsnd。msgrcv用于从队列中取消息。 每个队列都有一个msqid_ds结构与其相关联:struct msqid_ds { ...
2019-04-27 11:57:38
276
原创 XSI IPC(UNIX环境高级编程笔记)
每个内核中的IPC结构(消息队列、共享内存或信号量)都用一个非负整数的标识符(identifier)加以引用。 标识符是IPC对象的内部名。为使多个合作进程能够在同一个IPC对象上汇聚,需要提供一个外部命名方案。为此,每个IPC对象都与一个键(key)关联,将这个键作为该对象的外部名。 无论何时创建IPC结构,都应制定一个键,这个键的数据类型是基本结构数据类型key_t,通常在头文件&...
2019-04-27 10:42:08
241
原创 FIFO(UNIX环境高级编程笔记)
FIFO 有时被称为命名管道。未命名的管道只能在两个相关的进程之间使用,而且这两个相关的进程还要有一个共同创建了它们的祖先进程。#include <sys/stat.h>int mkfifo(const char*path, mode_t mode);int mkfifoat(int fd, const char *path, mode_t mode); ...
2019-04-26 17:59:27
312
原创 管道(UNIX环境高级编程笔记)
管道在历史上是半双工的(即数据只能在一个方向上流动)。现在,某些系统提供全双工管道。 管道只能在具有公共祖先的两个进程之间使用。 管道是通过pipe函数创建的。#include <unistd.h>int pipe(int fd[2]) 返回值:若成功,返回0;若出错,返回-1 经由参数,fd返回两个文件描述符:fd[0...
2019-04-26 16:28:09
267
原创 QT学习:实现定时器与进度条绑定
start按钮对象名为btn_init,stop按钮对象名为btn_end。 在Widget类中声明一个QTimer对象和进度条显示的数值:private: Ui::Widget *ui; int prog_num; //作为进度条显示的数值 QTimer *myTimer; //计时器对象 ...
2019-04-25 21:16:35
2888
原创 存储映射I/O(UNIX环境高级编程笔记)
存储映射I/O(memory-mapped I/O)能将一个磁盘文件映射到存储空间的一个缓冲区上,当从缓冲区中取数据时,就相当于读文件中的相应字节。与此类似,将数据存入缓冲区时,相应字节就自动写入文件。 为了使用这种功能,应首先高数内核将一个给定的文件映射到一个存储区域中。这是用mmap函数实现的。#include <sys/mman.h>void *mmap(voi...
2019-04-25 20:28:29
290
Object.zip
2019-08-03
qt入门学习之一:登陆框居中,判断name与password是否相同
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅