LPC1768生成bin文件夹问题 问题描述因为要远程升级,所以要需要生成.bin文件。但是发现生成的是.bin文件夹,里面有两个看不懂的文件,如下图所示:解决方案只要在下图所示的地方加上NO_CRP就ok了
C语言利用编译器参数检查 原理sizeof(char[1])在编译阶段不会报错,而sizeof(char[-1])会报错用法#define BUILD_CHECK(condition) ((void)sizeof(char[1 - 2*(!(condition))]))struct XX{ int a; int b; int c;};int main(void){ //如果结构体不等于12个字节则在编译阶段会报错 BUILD_CHECK((sizeof(struct XX) == 12)); retu
正则表达式 元字符正则表达式主要依赖于元字符。 元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。以下是一些元字符的介绍:元字符描述.点号匹配任意单个字符除了换行符。[]字符种类。匹配方括号内的任意字符。[^]否定的字符种类。匹配除了方括号里的任意字符。*匹配>=0个重复的在*号之前的字符。+匹配>=1个重复的+号前的字符。?标记?之前的字符为可选。{n,m}匹配num个大括号之前的字符
递归实现从1打印到100再打印到1 递归实现从1打印到100再打印到1#include "stdio.h"void fun(int n){ if (n < 100) { printf("%d ", n); fun(n + 1); } printf("%d ", n);}int main(void){ fun(1); return 0;}
win系统git中文乱码 git config --global core.quotepath false git config --global gui.encoding utf-8git config --global i18n.commit.encoding utf-8 git config --global i18n.logoutputencoding utf-8 在系统环境变量那边配置:LESSCHARSET=utf-8
正则表达式 目录正则表达式元字符点运算符`.`字符集否定字符集重复次数`*`号`+`号`?`号`{}`号`(...)`特征标群`|`或运算符`\`转码特殊字符锚点`^``$`简写字符集零宽度断言(前后欲查)正先行断言`?=...`负先行断言`(?!...)`正后发断言`(?<=...)`负后发断言 `(?<!...)`标志忽略大小写全局搜索多行修饰符贪婪匹配与惰性匹配正则表达式元字符正则表达式主要依赖于元字符。 元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊
单片机FIFO串口中断发送数据 以51单片机为例,直接上干货——代码:#define BUFFER_SIZE 128typedef struct{ unsigned char ri, wi, ct, run; unsigned char buff[BUFFER_SIZE];} UARTFIFO;static volatile UARTFIFO Uart1TxFifo;void Uart1Init(void) //115200bps@22.1184MHz{ SCON = 0x50;
stm32预分频器和自动重装载寄存器减1问题 在设置预分频器时候,要减去1,比如2分频,那么在在TIMx_PSC寄存器中写入的值就是2−1=12-1=12−1=1,而不是2在设置自动重装载寄存器的时候也要减去1,比如要填的值是1000,则要往TIMx_ARR寄存器中写1000−1=9991000-1=9991000−1=999...
contiki学习笔记03 contiki学习笔记03contiki是基于事件型驱动的操作系统,它传递事件的方式有两种,同步和异步。 process_post_synch函数是同步,调用它可以马上执行相关的线程;process_post是异步,调用它会产生一个事件,等待下次在主函数中执行;具体看代码:void process_post_synch(struct process *p, process_event_t ev, process_data_t data){ /*
contiki学习笔记02 contiki学习笔记02contiki是基于事件型驱动的一种操作系统,当事件触发的时候,会传递给相对应的线程,然后执行。在系统中,所有线程都是通过一个链表来统一管理的。先来看一下链表的结构:struct process{ struct process *next; /* 指向下个节点 */#if PROCESS_CONF_NO_PROCESS_NAMES /* 宏开关,是否要进程名 */#define PROCESS_NAME_STRING(pro
contiki学习笔记01 contiki学习笔记01contiki操作系统是基于事件驱动的,系统运行可以看作是在不停的处理事件的一个过程。它给我印象最深刻的地方是设计的太巧妙了,不像ucos以及RTX等操作系统在切换任务时需要进行压栈和出栈等操作,它切换“任务”(这里应该叫进程,process)是利用C语言关键字switch来的(这里说的有点片面,不但可以利用switch来,还可以用另外一种方式来实现,不过编译器得支持C99才行)。先来看一下主函数:int main(){ bsp_init();
CubeMX初体验-01 安装好CubeMX后,双击打开,点击如下图所示:在搜索框选择自己板子上相对应的芯片型号,例如我的是stm32f103rct6,然后点选,如下图所示:出现如下图所示:在配置任何其他外设前,要先配置PA13和PA14两个引脚,否则会出现无法下载或者无法调试等其他问题,如下图所示:现在假如要配置一个引脚,模式推挽输出,初始为高电平,速度为高速,且该引脚为PD2,配置如下:先点选该引脚...
C语言重定向输出 #include <stdio.h>#include <string.h>int main(){ fprintf(stdout, "Hello "); fprintf(stderr, "World!"); return0;}
利用python把utf8编码转成gb2312 filename = r'C:\Users\test.txt'with open(filename,'rb+') as f: data = f.read().decode('utf-8').encode('gb2312') f.seek(0) f.truncate() f.write(data)
python 编码 在python中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,可以转换为例如UTF-8编码等。例如,用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:所以你看到很多网页的源码上会有类似...
C语言宏定义 '\'不会换行 今天发现格式化工具在格式化代码时候把下面这行#define LC_SET(s) s = __LINE__; case __LINE__:格式化成:#define LC_SET(s) \ s = __LINE__; \ case __LINE__:看到这样被吓了一跳,如果s = __LINE__; \case __LINE__:这两行不在同一个位置时候,即__LI...
定时时间内不定时截图 #! python3import timeimport randomfrom PIL import ImageGrabdef Screenshot(): nowtime = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime(time.time())) im = ImageGrab.grab() im.save(...
C语言获取本地时间 #include "stdio.h"#include "time.h"void put_date(const struct tm* timer){ const char* wday_name[] = {"日", "一", "二", "三", "四", "五", "六"}; printf("%4d年%02d月%02d日(周%s)%02d时%02d分%02d秒", ...
c语言文件读写总结 打开文件FILE *fopen(const char *filename, const char *mode)filename – 这是 C 字符串,包含了要打开的文件名称。mode – 这是 C 字符串,包含了文件访问模式,模式如下:“r”:打开一个文本文件,可以读取文件,该文件必须存在“w”:打开一个文本文件,可以写入文件,如果文件不存在则创建,存在则覆盖“a”:打开一个...
蓝牙耳机使用说明书 插入充电线可同时给耳机和充电盒充电。充电盒未充满电充电指示灯红灯常亮,充满电后充电指示灯熄灭耳机充电中,耳机指示灯红灯常亮,耳机充满电,耳机指示灯白灯常亮1分钟后熄灭开机耳机在充电盒内,从充电盒中拿出耳机自动开机耳机不在充电盒内且已关机,长按多功能键约1秒(白灯亮起)关机放入充电盒中,耳机自动关机开机状态下,长安多功能键约5秒(红灯常亮2秒)双耳机使用自动连接...
python各进制之间转换 10进制转16进制:hex(10)10进制转8进制:oct(10)10进制转2进制:bin(10)16进制转10进制:int('0x5',16)8进制转10进制:int('0o5',8)2进制转10进制:int('0b1100',2)
用整数表示小数 在嵌入式开发过程中,为了在显示端显示小数、负数等非uint类型数值,往往采用将数据放大10倍、100倍等,今天看到另一种方法,特此记录这个方法的核心公式是y = kx+my:显示值,最终在显示屏上可见的值x:传输值,和显示屏通讯时传输的数值,一定是uint数据类型k:分辨率,该值确定了每个取值的步进m:取值偏移量或增量,通过m值将y值偏移到满足x值为uint数据类型的要求,m值默认等于Y...
kindle所支持的格式 Kindle个人文档服务目前只能转换并发送以下类型的文档:Microsoft Word (.doc, .docx)RTF文件(.rtf)HTML(.htm, .html)TXT文件(.txt)Zip, x-zip压缩文件Mobi格式电子书JPEG (.jpg), GIF (.gif), Bitmap (.bmp) 和 PNG (.png) 格式的图片。Adobe PDF (.pdf...
RTX-初始化和启动 初始化和启动RTX一共有3个函数:void os_sys_init (void (*task)(void) )初始化RTX并启动一个任务,该任务优先级为1(0为空闲任务,数值越小优先级越低)注意:该函数一定是在main函数中调用;参数中的任务一定是使用rtx_config.c配置的栈大小;void os_sys_init_prio (void (*task)(void), U8 p...
RTX调度方式 文章目录抢占式调度时间片调度合作式调度抢占式调度每个任务都有不同的优先级,任务会一直运行直到被高优先级任务抢占或者遇到阻塞式的 API 函数,比如 os_dly_wait在 RTX 的配置向导中禁止使用时间片调度,那么每个任务必须配置不同的优先级。当 RTX多任务启动执行后:首先执行的最高优先级的任务 Task1,Task1 会一直运行直到遇到系统阻塞式的 API 函数,比如延迟,事件...
RTX移植和配置 文章目录RTX 操作系统移植配置文件详解RTX 操作系统移植使能RTX添加RTX系统的配置文件配置文件在MDK的安装目录C:\安装目录\ARM\RL\RTX\Config下面,文件名 RTX_Conf_CM.c,添加到MDK 工程上通过这两步,RTX 操作系统的移植就完成了配置文件详解Task ConfigurationNumber of concurrent runn...
算法导论-插入排序 #include <stdio.h>void insertion_sort(int A[], int len){ int key = 0; int i, j; for (i = 1; i < len; i++) { key = A[i]; j = i - 1; while (j >= ...
EOF和feof()区别 首先来看他们两个的定义:#define EOF (-1)#define _IOEOF 0x0010#define feof(_stream) ((_stream)->_flag & _IOEOF)EOF是不可输出字符,因此不能在屏幕上显示。由于字符的ASCII码不可能出现-1,因此EOF定义为-1是合适的。当读入的字符值等于EOF时,表示读入的已不是正常的...
feof()函数多输出一个字符"0xFF"原因 首先看feof()函数(准确来说是宏)的定义:#define _IOEOF 0x0010#define feof(_stream) ((_stream)->_flag & _IOEOF)原因是当文件位置指针(fp->_ptr)到了文件末尾,然后再发生读/写操作时,标志位(fp->_flag)的bit4才会被置一;然后再调用feof(),才会得到文件结束的...
CAN协议 扩展帧与标准帧的区别:帧ID的长度不一样,标准帧的帧ID长度是11位,帧ID的范围是0x000~0x7FF,扩展帧的帧ID长度29位,范围是0x00000000~0x1FFFFFFFJ1939协议的帧ID通常是0x18XXXXXX,是29位,是扩展帧扩展帧29位帧ID划分:符号PRDPPFPSSA位数311888含义报文优先级保留位数据页...
windows使用git时出现:warning: LF will be replaced by CRLF windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:git config --global core.autocrlf false
韦根协议 韦根数据输出由二根线组成,分别是DATA0 和 DATA1 ;二根线分别为‘0’或‘1’输出。输出‘0’时:DATA0线上出现负脉冲;输出‘1’时:DATA1线上出现负脉冲;负脉冲宽度TP=100微秒;周期TW=1600微秒;通讯协议标准韦根输出是由26位二进制数组成,每一位的含义如下:1 2 9 10 25 26X_X X X X X X X X_X X X X X X X X X...
指针 声明一个指针变量:type *pType = NULL;pType有5个“属性”,分别是:pType = (己址,己值,他址,他值,他型);己址:即“自己的地址”指针变量pType作为一个变量,也有自己的地址,常见的代码写法是&pType己址在一般的程序中不会被频繁地用到,如果要用的话,就涉及到“指针的指针”,这又是另外一个话题了,本文不讨论;己值:即“自己的数据值”指针...
C语言中在常数后面加U、L、F的功能(转) 一、含义解释U:unsignedL:long / doubleF:float二、例子#define SECONDS_PER_YEAR (365*24*60*60)UL#define PI 3.1415F#define TEST_L 100000.6283L 三、例子解释1、C语言中,常数分为整型和浮点型。2、...
A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS=================================================="Everything you wanted to know about CRC algorithms, but were afraidto ask for fear that errors ...
数组指针和指针数组 数组指针(也称行指针)定义: int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的二维数组,这个二维数组的长度是n,也可以说是p的步长,也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该...
数独求解 //数独求解:递归+回溯#include <stdio.h>int map[9][9];#define false 0#define true 1void display() //打印输出{ int i, j; for (i = 0; i < 9; i++) { for (j = 0; j < 9; j++) ...
汇编笔记 8086CPU一共有14个寄存器AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器8086CPU的AX,BX,CX,DX这4个寄存器都可分为两个可独立使用的8位寄存器几条汇编指令:汇编指令控制CPU完成的操作用高级语言的语法描述mov ax,18将18送入寄存器AXAX=18mov ah,78将78送入寄存器AH...
DOS命令学习 命令不区分大小写如果命令前加@,表示这条命令不打印出来,只把结果打印出来,即@是关闭命令本身的回显::表示注释一行ECHO ON表示接下来的命令中(不包括本命令),执行命令前会先把命令打印出来ECHO OFF表示接下来的命令中(不包括本命令),只打印执行结果,不打印命令本身@ECHO OFF表示接下来的命令中(包括本命令),只打印执行结果,不打印命令本身cls清除显示器屏幕上的内容...
四元数解算姿态角解析 本文来自:链接一、概述无人机求解姿态角有多种算法,但由于各种算法的自身限制及计算机计算速度的限制,所以我们需要选择一个较佳的求解算法,下面我们先来看看几种求解姿态角的算法:1. 欧拉角法:欧拉角法(又称三参数法)是欧拉在1776 年提出来的,其原理是动坐标系相对参考坐标系之间的位置关系可以用一组欧拉角来描述。解算欧拉角微分方程只需要解三个微分方程,与其它方法相比,需要求解的方程个数少一些但...
利用native2ascii工具utf-8转gbk #include <stdio.h>#include <stdlib.h>#include <stdint.h>/*@echo offset DIR=E:\User\Desktop\codefor /R %DIR% %%i in (*.c *.h) do ( echo %%i ::把utf-8编码转成Unicode编码 na...
Astyle-3.1格式化代码 Dev-C++:-A1 -xV -S -xW -w -xw -Y -f -p -H -U -k1 -j -xb -xf -xh -c --suffix=.bakSource Insight:"C:\Program Files (x86)\Dev-Cpp\AStyle\AStyle.exe" -A1 -xV -S -xW -w -xw -Y -f -p -H -U -k1 -j -xb -xf ...
Cortex-M3基础 Cortex-M3有15个通用寄存器R0-R15,其中R0-R7所有指令都能访问它们。R8-R12这5个寄存器32位的所有指令都能访问,16位指令只有少部分能访问。R13是堆栈指针,又可分为两种:MSP(主堆栈指针)和PSP(进程堆栈指针)。R14是连接寄存器,用于在调用子程序时存储返回地址。R15时程序计数器。控制寄存器(CONTROL)是Cortex-M3内核的特殊功能寄存器之一。bit3-...
51单片机使用12M晶振串口乱码问题 前几天,画了块51的板子,晶振用的是12MHz的,调试过程发现串口打印输出一直乱码,用的是STC-ISP(V6.86R)这个工具软件里面的波特率计算器来直接计算波特率,配置如下图所示:就是这个配置导致了通信乱码,原因是——误差太大了,8.51%的误差,查找原因过程看到有资料说如果误差在2%以上就会出现乱码(具体没有测试过),更别提我这8.51%的误差了。原因是找到了,解决的方法呢?一是换晶振...
RTX 互斥量 和 信号量 互斥量:如果一个任务获得资源以后没有释放,下次运行时候不必再等待,直接拥有这个资源的使用权,别的任务要使用只能等待。信号量:假设初始化时只有1个资源可以使用,那么一个任务获得资源以后没有释放,下次想再调用必须等待。这是信号量和互斥量的区别之一,之二是互斥量可以防止优先级翻转。例如有三个任务,task1,task2,task3,优先级分别是1,2,3,任务task3运行时候需要使用资源,发现任...
常用软件和网站 软件potplayerfoobar2000EverythingsnipastetyporaDism++f.luxfilezillairfanviewGeekUninstallerSumatra PDFsourceinsightIDM待续。。。网站
python导入模块相关 在Python中,模块是扩展名为.py的文件。导入整个模块:import module_name,采用这种方法导入时,要调用其中的函数,格式是:module_name.function_name()导入特定的函数:from module_name import function_name,采用这种方式,调用函数直接这样:function_name()使用as给函数指定别名:from m...
宏定义参数 宏定义的参数以逗号(,)作为分隔符#include <stdio.h>#define FUN(AA,aa) {AA;printf("%d",aa);}void fun ( void )FUN ( printf ( "你好" ); printf ( "我好" ), 20 )int main ( void ){ fun(); return 0...
正则表达式语法 正则表达式语法正则表达式语言基于 Perl 正则表达式语法。文字所有字符都是文字除了: ., *, ?, +, (, ), {,}, [, ], ^, $ 和 \。这些字符代表文字当之前有一个 \ 时。一个文字是一个与它自己相匹配的字符。例如,搜索 \? 会匹配每一个在文档中的 ? ,或搜索 Hello 会匹配每一个在文档中的 Hello 。元字符下列表格包含元字符(非文字)的完整列表以...
gantt图 Mon 06Mon 13Mon 20Completed task Active task Future task Future task2 Completed task in the critical line Implement parser and jison Creat...
c语言 重定向 流 #include <stdio.h> #include <iostream> using namespace std;int main() { int a,b; freopen("in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取 freopen("out.txt","w",stdout); //
c语言 main函数的两个参数的作用 #include <stdio.h>#include <stdlib.h>int main ( int argc, char* argv[] ){ int i; for ( i = 0; i < argc; i++ ) { printf ( "%s", argv[i] ); } system ( ...
VScode 改中文 Ctrl+Shift+p输入Configure Display Language出现如下:{ // Defines VS Code's display language. // See https://go.microsoft.com/fwlink/?LinkId=761051 for a list of supported languages. "locale":"en" /...
utf-8编码转为系统默认编码 @echo offset DIR=E:\tmp\tmpfor /R %DIR% %%i in (*.c *.h) do (echo %%inative2ascii -encoding UTF-8 %%i %DIR%\tempnative2ascii -reverse %DIR%\temp %%i)pause
内存首地址8字节对齐分析 typedef unsigned char uint8_t;typedef unsigned int uint32_t;static uint8_t *pucAlignedHeap;static uint8_t ucHeap[10 * 1024];pucAlignedHeap = ( uint8_t * ) ( ( ( uint32_t ) &amp;ucHeap[ 8 ] ) &am...
温湿度传感器之DHT11 一、DHT11数据格式(5Byte)1Byte湿度整数+1Byte湿度小数+1Byte温度整数+1Byte温度小数+1Byte校验和温湿度是有带小数部分的,但是发现湿度小数一直是01Byte校验和数据==(1Byte湿度整数+1Byte湿度小数+1Byte温度整数+1Byte温度小数)&amp;amp;amp;amp;amp;0xFF1Byte校验和数据 == (1Byte湿度整数+1Byte湿度小数+1Byte...
source insight脚本 // open the corresponding .c or .h filemacro OpenCorrespondingCorHfile(){ hcurrentbuf = getcurrentbuf () bname = getbufname (hcurrentbuf) len = strlen (bname) if (&amp;amp;amp;amp;amp;amp;amp;quot;.c&amp;amp;amp;amp;amp;a
C语言常用的库函数用法 char *strstr(const char *str1, const char *str2)判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。待续……
source insight3使用注意事项 1. 护眼色R:199G:237B:2042. 中文乱码Option→Document Options,或者快捷键Alt+T,选择Screen Fonts,右下角脚本(R):,选择西欧语言utf-8 无 bom 会乱码,其他编码未测试gb2312不会乱码,把文件改成gb2312编码就可以解决中文乱码问题...
十六进制转字符 void Hex2Str ( unsigned char num, unsigned char str[] ){ unsigned char H, L; H = num >> 4; L = num & 0x0F; if ( H > 9 ) str[0] = 'A' + H - 10; else ...
C语言结构体4种初始化方法 struct member{ int a; float b; char *s;};/* 第一种 */struct member mem = {10,20.0f,"good"};/* 第二种 */struct member mem;mem.a = 10;mem.b = 20.0f;mem.s = "good";/* 第三种 */struct mem...
51单片机的printf等格式输出函数 在51单片机上使用printf函数、sprintf函数要注意以下几点:无符号16位数格式符用%d或者%u,千万不能加字母“l”,否则会出错32位数据格式符必须加字母“l”,否则会出错8位数据格式符要加字母“b”,例如%bd、%bu等...
十进制转为任意位数的二进制 void func( unsigned int num, unsigned int nbit, char *str ){ unsigned int i; unsigned int j = 0; for ( i = nbit - 1; i >= 0; i-- ) { str[j++] = '0' + ( (num >> i) & 1); }}
Win10家庭版开启Hyper-V 新建文本文件,复制一下内容:pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%Sys...
十六进制字符转对应的十六进制数 #include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;string.h&amp;amp;gt;/* C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。 */int main( void ){ unsigned char str[5]; unsigned char num; FILE *infp; FI
十六进制字符转对应的十六进制数 #include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;string.h&amp;amp;gt;/* C 库函数 int feof(FILE *stream) 测试给定流 stream 的文件结束标识符。 */int main( void ){ unsigned char str[5]; unsigned char num; FILE *infp; FI
文件数据转十六进制数生成数组 #include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;string.h&amp;amp;amp;gt;/* * feof():当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。 * C 库函数 int getc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
树莓派开启samba服务 1. 安装samba 和 samba-common-binsudo apt-get updatesudo apt-get install samba samba-common-bin2. 配置/etc/samba/smb.conf文件备份配置文件sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.back打开配置文件,配置:su...
anki单词模板 正面<div class="word">{{单词}}</div><div class="phoneticsymbol">{{音标}}</div><div>{{发音}}</div>中间@font-face { font-family: kt; src: url('_kt.ttf'); }@f
麦克米伦 单词aabandonabbreviationabilityableabnormalaboardabolishabortionaboutaboveabroadabsenceabsentabsoluteabsolutelyabsorbabstractabsurdabuseacademicacademyaccelerateacceleratoraccen...
甘特图 参考链接gantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section A section Completed task :done, des1, 2014-01-06,2014-01-08...
原码、反码、补码 数值在计算机中是以补码的方式存储的。一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。比如,十进制中的数 +2 ,计算机字长为8位,转换成二进制就是00000010。如果是 -2 ,就是 10000010 。因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000010,其最高位1...
& ~(sizeof(int) - 1) )详解 问题INTSIZEOF 宏,获取类型占用的空间长度,最小占用长度为int的整数倍:#define INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )引子问题1: 假设有要把一批货物放到集装箱里,货物有12件,一个箱子最多能装6件货物,求箱子的数目。解答:显然我们需要12÷6=212\div6=...
无网线、无显示屏启动树莓派(3B) 把系统烧录进SD卡后,在boot目录下新建一个ssh为名的文件,用于开启ssh连接服务(默认关闭)。在boot目录下新建一个wpa_supplicant.conf为名的文件,打开文件,键入以下内容:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid...
POP3、SMTP和IMAP 把系统烧录进SD卡后,在boot目录下新建一个ssh为名的文件,用于开启ssh连接服务(默认关闭)。在boot目录下新建一个wpa_supplicant.conf为名的文件,打开文件,键入以下内容:ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid...
内存对齐 什么是内存对齐?先看下面的的结构体:struct TestStruct1{ char c1; short s; char c2; int i;};假设这个结构的成员在内存中是紧凑排列的,假设c1 的地址是0,那么s 的地址就应该是1,c2 的地址就是3,i 的地址就是4。也就是c1 地址为00000000, s 地址为00000001, c2地址为00000003...
检测回文数 int reverse(int n){ int reversed = 0; while(n>0) { reversed = 10 * reversed + n % 10; n /= 10; } return reversed;}int isPalindrome(int n){ return (n == reverse(n));}
树莓派换源 树莓派官方可用镜像列表以清华镜像源为例,先输入命令more /etc/debian_version查看自己Debian的版本号,如下图:然后选择raspbian,点击后面的?号,选择版本,如下图: 按照使用说明操作即可...
Git小结 安装Git之后,请输入用户名和电子邮件地址:$ git config --global user.name "&lt;用户名&gt;"$ git config --global user.email "&lt;电子邮件&gt;"创建一个版本库$ git init添加版本库$ git add filename1 filename2 ...Tips:使用
选择排序法 /* 选择排序法 */#include &lt;stdio.h&gt;void selectionsort(int A[],int N){ int i,j,t,minj; for(i=0;i&lt;N-1;i++) { minj=i; for(j=i+1;j&lt;N;j++) { if(A[...
插入排序法 /* 插入排序法 *//* 1. 将开头元素视作已排序 2. 执行下述处理,直至未排序部分消失 1. 取出未排序部分的开头元素赋给变量v 2. 在已排序部分,将所有比v大的元素向后移动一个单位 3. 将已取出的元素v插入空位*/ #include <stdio.h>void insertionsort(int A[],int N){ ...
冒泡排序法 /* 冒泡排序法 */#include <stdio.h>void bubblesort(int A[],int N){ char flag=1; int i,j; int temp; for(i=0;flag;i++) { flag=0; for(j=N-1;j>=i+1;j--) ...
搜索技巧 1. site有时候,您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。site命令语法格式有两种: 1. site:网址 关键词 2. 关键词 site:网址例: site:cn 表示仅在域名以”cn”结尾的网站中搜索。 site:org 表示只是在域名以“org”结尾的网站中查寻。注意事项: 1. site:后边跟的冒...
TCP 三次握手和四次挥手 三次握手: 建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立, 在Socket编程中,这一过程由客户端执行connect来触发,具体流程图如下: 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server, Client进入SYN_SENT状态,等待Server确认。第二次握手:Server收到数据包后由标志位SYN=1知...
指针数组和数组指针的区别 简单介绍简单地说,int *p[4]是指针数组,int(*p)[4]是指向数组的指针指针数组:是一个元素全为指针的数组 数组指针:可以理解为指针,只是这个指针类型不是int而是int[4]类型的数组int *p[4],p是一个指针数组,每一个指向一个int型的,等价于(int *) (p[4])int (*p)[4],p是一个热指针,指向int[4]的数组通过运算符优先级来理...
大端、小端 小端就是低位字节放在内存的低地址端,高位字节放在内存的高地址端。大端就是高位字节放在内存的低地址端,低位字节放在内存的高地址端。举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:大端模式:低地址 —————–> 高地址 0x12 | 0x34 | 0x56 | 0x78小端模式:低地址 ——————> 高地址 0x78...