- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 matlab_rand 公式 r = a + (b-a).*rand(N,1)的分析
rand产生的最大数是1,则r = -2 + (-18).*rand(10,1) = -2 + (-18).*1 = -2 + (-18) = -20。因为rand产生的结果是0到1之间的随机数,所以rand产生的结果先乘以-18,这样可以得到0到-18之间的随机数,然后再加上-2,则将范围移动到-2到-20。例如 rand产生最小数是0,则r = -2 + (-18).*rand(10,1) = -2 + (-18).*0 = -2 + (0) = -2;
2023-09-30 09:04:30
246
原创 C语言创建一个链表并删除指定数据的节点
创建一个链表并删除指定数据的节点,通过 scanf 获取用户输入的数据,调用 deleteNode 函数删除对应节点,并输出删除后的链表。
2023-03-26 19:12:53
1303
原创 strcmp和memcmp的使用比较
当两个字符串不相等时,使用memcmp函数的时间复杂度是O(n),而使用strcmp函数的时间复杂度是O(min(m,n)),其中m和n分别是两个字符串的长度。因此,随着输入规模n的增大,O(n)算法的执行时间会增加,而O(1)算法的执行时间不会增加。从实际使用角度,在字符串的比较上来说,如果在不知道传入的字符串大小的情况下,先使用strlen获取字符串大小,再使用memcmp函数进行比较这种方式在效率上是比直接使用strcmp函数效率略低的,因为需要先遍历一遍字符串来获取其长度。
2023-03-26 18:22:54
2330
原创 C语言 一维数组元素的位替换
起因:做硬件设计的时候数码管屏的图纸错误,导致共阴极做成了共阳极,原本存放一维数组8个元素的64位数据都需要经过对角线进行翻折。具体如下图:上图中,举例说明若a[0]=0x02,a[1]=0x00, 当沿着图中虚线将a[0]的第二位元素与a[1]的第一位元素进行替换,则输出a[0]=0x00,a[1]=0x01.代码如下typedef unsigned int uint8_t;void switch_buf(uint8_t buf[8]);void switch_buf(u.
2021-12-28 08:49:07
1425
原创 [驱动]BL0937
// 注:使用华大半导体HC32L130系列单片机。其中定时部分省略bl0937.h#ifndef _BL_0937_HPP_#define _BL_0937_HPP_// 注:BL0937可测量电压电流 或 功率struct _bl0937_{ ////////////////////////////////////////////////////////////////////////// // 以下参数需要在初始化前做好配置 en_gpio_port_t _port; //
2021-07-23 20:04:42
4523
4
原创 递归——二进制与十进制转换
十进制转二进制void to_binary(int n){ int r; r = n%2; // 取末位,必为0或1 // if (n >= 2) { // n < 2为终止条件 to_binary(n/2); } putchar('0'+r);}
2021-06-20 20:49:41
1139
2
原创 [驱动] 三位一体七脚数码管
使用HC32L13X系列,Cortex-M0内核LedDrv.h#ifndef _LED_DRV_HPP_#define _LED_DRV_HPP_#include "gpio.h"#define HLD_RAM_LEN 4 // ram的大小extern uint8_t sg_hld_display_ram[HLD_RAM_LEN]; // ramextern struct _hwr_led_drv_ sg_hld;#define GET_LED_RAM() sg_
2021-04-16 21:31:48
1271
原创 [驱动] HT1621M
单片机为HC32L13X,Cortex-M puls内核Ht1621m.h#ifndef _HT1621M_HPP_#define _HT1621M_HPP_#define HT1621M_RAM_SIZE 16struct _ht1621m_{ uint8_t _port_cs; uint8_t _port_wr; uint8_t _port_dat; uint8_t _pin_cs; uint8_t _pin_wr; uint8_t _pin_dat; ui.
2021-04-16 20:56:07
253
原创 [驱动] TM1729
注:本程序使用华大半导体HC32L13X系列单片机。Cortex-M0 plus内核Tm1729.h#ifndef _TM1729_HPP_#define _TM1729_HPP_extern void tm1729_init(void);extern void tm1729_disp(uint8_t* p, uint8_t size);#endifTm1729.c#include "BaseDef.h"#include "Tm1729.h"#incl..
2021-04-16 20:14:05
2867
2
原创 迭代法
1、求fn = 3 * fn1 - 2 * fn0中n等于20时候的值,fn0=1,fn1=2 int fn, fn0 = 1, fn1 = 2; int i; for (i = 2; i <= 20; i++) { fn = 3 * fn1 - 2 * fn0; fn0 = fn1; fn1 = fn; } printf("%d", fn);
2020-09-29 15:48:35
228
原创 排序相关程序
1、将a[]中的数据按大小顺序排到b[] int a[5], b[5], i ,j ; int maxn, point; for (i = 0; i < 5; i++) { scanf_s("%d", &a[i]); } for (i = 0; i < 5; i++) { maxn = 0; for (j = 0; j < 5; j++) { if (a[j] >
2020-09-29 13:29:21
107
原创 求素数
素数要求n除以2到平方根n所有数后仍为其本身的数。//判断素数——穷举法 int i = 2, m=1, q; scanf_s("%d", &q); for (i; i <= sqrt(q); ++i) { if (q%i == 0) { m = 0; break; } } printf("%s", m == 1 ? "yes" : "no"); getchar(); getchar(); return 0;//判断素数——穷举法 int
2020-09-28 20:06:46
330
原创 C语言中用泰勒法计算sinx的值
已知sinx的泰勒公式展开式sinx=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…(无穷级数形式),将其转化未带有拉格朗日型余项的n阶麦克劳林公式:由此可得#include <stdio.h>#include<math.h>double fact(int n){ if (n == 0) return 1; return fact(n - 1)*n;//求1-(2*n-1)的阶层}double fact_2(int n){ lon
2020-09-28 15:34:31
14900
1
原创 C语言中关于while(scanf(“%d%d”)!=EOF)引发的思考
while(scanf(“%d%d”)!=EOF)关于scanf的几个要点:1、scanf的引号中是否需要加入非输入控制符int scanf(const char *format, ...);也就是说scanf有两种用法 一种是scanf("输入控制符", 输入参数); 一种是scanf("输入控制符非输入控制符", 输入参数);。在printf中非输出控制符是原样输出的,所以在scanf中的非输入控制符也需要原样输入。 “输入控制符”和“输出控制符”是一模一样的。例如:...
2020-09-28 12:09:46
1994
原创 【STM32F10x】三:使用stm32标准库函数
虽然使用寄存器操作是最直接的操作硬件的方式,但是在STM32中提供给了一种更加方便快捷的使用方式——库函数。库函数是实际上是一种对于寄存器以结构体形式的封装。首先,在stm32中库函数主要分为了两块:stm32标准库库CMSIS目录下的<core_cm3>和<stm32f10x_it>文件和stm32标准外设库STM32F10x_StdPeriph_Driver 目录下src目录中的.c文件。 只要将这些头文件添加到项目中即可使用。首先观察RCC,在上一次的写入中,使用到了R
2020-06-17 19:17:18
1584
原创 【STM32F10x】二:利用结构体访问外设
之前了解使用寄存器操作GPIOA口的LED灯亮灭程序,原理是将寄存器的地址强制转换成指针形式, 然后对指针进行操作。这一章尝试通过将外设定义成结构体的形式来操作外设寄存器。本章重点在于理解和使用<结构体>来控制外设寄存器,然后举例一个按键控制LED灯实现亮灭功能,通过结构体访问RCC和GPIO的相关寄存器。预备知识1:寄存器地址和结构体在形式上都是地址连续分布通过C语言...
2020-06-17 17:35:38
655
翻译 关于5G关键技术——Massive MIMO 基本原理中波束的探究
摘要近年来移动数据业务量呈现几何指数增长,在可预测的未来我们急需能够满足更高的传输速率,更大的带宽容量和更低延时的无线通信系统。而相比较第四代(4G),第五代(5G)移动通信需要在无线传输上取得突破性创新,以实现频谱效率和功率效率提升10倍以上的目标,其中,MassiveMIMO(大规模天线技术,亦称为Large Scale MIMO)是第五代移动通信(5G)中提高系统容量和频谱利用率的关键技术。本文将MassiveMIMO技术的研究进行原理阐述,其中重点阐述MIMO技术在功率增益上的提高——波..
2020-06-12 23:03:50
8840
1
原创 【STM32F10x系列】一:寄存器相关操作
讲解关于在编写处理器代码过程中,真正处理器操作的本质还是寄存器,只有理解了寄存器的运行原理,才能理解代码运行
2020-04-23 01:30:32
1475
原创 SQL server安装错误
若出现以下错误: SQL Server 安装程序在运行 Windows Installer 文件时遇到错误。 Windows Installer 错误消息: 打开安装日志文件的错误。请验证指定的日志文件位置是否存在,是否可以写入。 Windows Installer 文件: c:\Baiduyunpan\cn_sql_server_2014_express_with_advan...
2020-03-20 09:27:23
1524
stm32exti.rar
2020-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人