自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32开发从零开始(1)---手把手教你点亮一个LED灯

STM32开发从零开始(1)---手把手教你点亮一个LED灯

2022-08-09 15:15:42 5945 3

原创 逻辑门内部电路原理(与或非门)

2022-07-31 22:48:57 1571

原创 不平衡电桥中的星三角变换电流关系

存在一个不平衡电桥,如下如何求解各支路电流?据本人实验,根据星三角变换关系,有,将上部三角形电阻网络变换为星形电阻网络,则根据分流公式有左边:(7/(2+7))x 4=3.11A右边:(2/(2+7)) x 4=0.889A3.11A为原电阻网络左下支路电流,0.889A为原电阻网络右下支路电流。继续变换,原电阻网络下部三角电阻网络至星形电阻网络,则根据分流公式有左边:(4.8/(3.3+4.8))x 4=2.37A右边:(3.3/(3.3+4.8)) x 4=1.63A2.37

2022-05-24 20:44:52 913 1

原创 《FPGA开发-1-verilog基本语法》

FPGA一般由verilog和VHDL语言开发,但由于verilog与C语言语法相像,更容易让初学者快速掌握这门语言,于是在应用宽度方面是verilog更胜一筹,但VHDL最初是用于军方产品的开发语言,所以VHDL的语法更加严谨,此次我们以广受使用的verilog语言为基础开发FPGA。一、FPGA开发平台(载体)FPGA作为芯片,需要通过使用开发语言以平台为载体进行FPGA设计,目前开发FPGA主要为两大平台------Quartus || 和vivodo,前者开发FPGA芯片和软件是Altera公司

2022-01-11 16:39:48 555

原创 【加法器】数电中,计算机是如何运算加法的?

计算机如何进行加法计算?这里我们先了解,计算机是把十进制转为二进制进行计算,如13(10)=1101(2)8+4+1=13那么,二进制是如何计算的呢?我们来看一组真值表0+0=00+1=11+0=11+1=?在二进制当中只有0和1,所以1+1肯定不是直接填2,而是10,注意,这是二进制的10,应该拆开来看,即1 0,前一位代表进位位,后一位代表加法位,所以10中的1代表1个进位也就是2,0代表加法位没有,所以是2+0=2。于是,我们稍微修改上面的真值表A B 进位位

2021-12-12 22:32:02 1477

原创 【数电】如何使用加法器进行三位以内的减法

计算机如何进行三位以内的减法操作?如232-154=78?这里面临的第一个难点就是借位,这对于计算机来说非常麻烦,于是人们发明了新的方法。将232-154变成232-154+1000-1000,再变成232-154+999+1-1000,稍微变换一下就是,999-154+232+1-1000,这样最高位的每一位都是三位减法以内最大数,不存在借位问题,但我们进行的是8位二进制的减法,由于2的8次方为256,于是将1000变换为256,255-154+232+1-256这就是补码,即,被减

2021-12-10 23:15:06 1204

原创 quartus 编译报错修改方法

源代码:module adder(input [31:0] operand1,input [31:0] operand2,input cin,output [31:0] result,output cout);assign {cout,result} = operand1 + operand2 + cout;endmodule报错: Error (10170): Verilog HDL syntax error at Verilog1.v(8) near te

2021-11-27 16:03:30 17243

原创 C++二分法查找顺序数组元素,并顺序插入指定元素!

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入:nums = [1,3,5,6], target = 5输出:2示例 2:输入: nums = [1,3,5,6], target = 2输出:1示例 3:输入:nums = [1,3,5,6], target = 7输出:4示例 4:输入:nums = [1,3,5,6],

2021-09-17 17:22:05 496

原创 C++---STL标准库之map函数全解析,图文并茂,实例分析,迅速上手掌握!

map()的定义map 翻译为映射,也是常用的STL容器。众所周知,在定义数组时(如 int array[100]),其实是定义了一个从 int 型到 int型的映射,比如 array[0]=25、array[4]=36就分别是将0映射到 25、将4映射到36。一个double 型数组则是将 int 型映射到 double 型。例如 db[0]=3.14,db[1]=0.01。但是,无论是什么类型,它总是将 int 型映射到其他类型。这似乎表现出一个弊端∶当需要以其他类型作为关键字来做映射时,会显得不太

2021-09-17 15:29:31 9349 1

原创 C++---STL标准库之string函数超长解析,十大常用函数全覆盖,轻松掌握,灵活运用,全面解决string字符串难题!

STL---stringstring()定义string 中内容的访问string常用函数string()定义在 C 语言中,一般使用字符数组 char str[]来存放字符串,但是使用字符数组有时会显得操作麻烦,而且容易因经验不足而产生一些错误。为了使编程者可以更方便地对字符串进行操作,C++在 STL 中加入了string 类型,对字符串常用的需求功能进行了封装,使得操作起来更方便,且不易出错。如果要使用 string,需要添加string头文件,即#include < string &gt

2021-09-16 18:42:37 771

原创 DFS深度优先搜索---最短路径问题全攻略,图文解析与算法实例,让你快速掌握DFS算法这一搜索利器!

DSF深度优先搜索:最短路径问题DFS深度优先搜索原理:实战代码部分:整体代码:解析代码:DFS深度优先搜索原理:深度优先搜索以"深度"作为第一关键词,每次都是沿着路径到不能再前进时才退回到最近的岔道口。以一个有向图进行DFS
遍历来举例(从V0开始进行遍历,黑色表示结点未访问,白色表示结点已访问,虚线边表示当前遍历路径);① 访问 V0,发现从V0出发可以到达两个未访问顶点∶ V1和 V2,因此准备访问 V1和 V2这两个顶点。此时情况如图所示:②从V0出发访问V1,发现从V1出发可以到达两

2021-09-15 17:22:39 7070 2

原创 C++二分法查找应用实例,寻找第一个重复的元素,思路全解析,清晰明了!

你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输入:n = 5, bad

2021-09-15 10:11:28 324

原创 C++---STL标准库之set函数全解析,示例讲解,清晰易懂!

STL---setset定义set常用函数set定义set翻译为集合,是一个内部自动有序且不含重复元素的容器。在考试中,有可能出现需
要去掉重复元素的情况,而且有可能因这些元素比较大或者类型不是int型而不能直接开散列
表,在这种情况下就可以用set来保留元素本身而不考虑它的个数。当然,上面说的情况也可
以通过再开一个数组进行下标和元素的对应来解决,但是set提供了更为直观的接口,并且加
入set之后可以实现自动排序,因此熟练使用set可以在做某些题时减少思维量。如果要使用set,需要添加set头文件

2021-09-15 09:28:11 9022 1

原创 C++---STL标准库之vector函数全解析,轻松上手,灵活使用,效果堪比Python语法!

STL---vectorvector定义:vector容器内元素的访问:常用vector函数实例解析:vector定义:vector翻译为向量,但是这里使用“变长数组”的叫法更容易理解,也即“长度根据需
要而自动改变的数组” 。在考试题中,有时会碰到只用普通数组会超内存的情况,这种情况
使用vector会让问题的解决便捷许多。另外,vector还可以用来以邻接表的方式储存图,这
对无法使用邻接矩阵的题目(结点数太多)、又害怕使用指针实现邻接表的读者是非常友好的,
写法也非常简洁。如果要使用vector

2021-09-14 19:12:23 469

原创 C++二分法查找,算法实例与图片解释,浅显易懂!

题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入:nums = [-1,0,3,5,9,12], target = 9输出:4解释: 9 出现在 nums 中并且下标为 4示例 2:输入:nums = [-1,0,3,5,9,12], target = 2输出:-1解释: 2 不存在 nums 中因此返回 -1提示: 你可以假设

2021-09-14 11:21:02 372

原创 (C++入门---4)分支结构(if else switch)

if 语句回根据对某个条件的判断结果,将程序的流程分为两支。if-else 嵌套switch 语句if-else 嵌套多路分支的第一种实现方法就是使用 if-else 嵌套,即在 if 分支和(或者) else 分支中再嵌套 if-else 语句。例如:cin >> angle; // 输入角度if (angle % 90 == 0){ // if-else嵌套 if (angle % 180 == 0) cout << "

2021-09-14 08:53:54 791

原创 (C++入门---3)分支结构(if else)

编程时有时候需要根据某个条件是否满足来选择执行或不执行某些语句。C 和 C++ 的 if 语句可以实现这种根据条件判断来选择执行的功能。if 语句有两种形式,分别实现一路分支和两路分支。if 语句实现一路分支的基本方法是采用 if 语句:if (<条件表达式>) <语句>其语义为:如果<条件表达式>的值为非0 ( true ),即“真”,则执行<语句>,然后按顺序执行 if 语句的后继语句。如果<条件表达式>的值为0( false ),

2021-09-14 08:30:02 1378

原创 (C++入门---2)iomanip流操作算子库(小数点,精度,进制,输出格式)

流输入输出也可以进行格式控制, C++ 中是通过流操纵算子来实现的。流操纵算子是在头文件 iomanip 中定义的,因此要使用这些流操纵算子,必须包含该头文件。// 包含流操作算子库#include <iomanip>C++ 的 iomanip 库提供了多种流操纵算子,来实现不同的格式控制功能,包括设置域宽、设置精度、设置和清除格式化标志、设置域填充字符、在输出流中插入空字符、跳过输入流中的空白字符等,下表为一些常用的流操作算子:流操纵算子功能描述setbase(b

2021-09-13 20:42:37 886

原创 (C++入门---1)基本输入输出(cin与cout)

C++ 预定义了一些 I/O 流对象来实现输入输出,这些 I/O 流对象关联相应设备(键盘、显示器等)并实现程序和设备之间的数据传输。C++ 预定义的 I/O 流对象有4个:cout 、cin 、cerr , clog,其中:cout :代表标准输出流,关联显示器;cin :代表标准输入流,关联键盘;cerr 和 clog: 代表标准错误流,也关联显示器。本次我们主要学习标准输入输出流。标准输入输出流cin 和流提取运算符“>>”一起实现数据输入。cout、cerr 和 clog

2021-09-13 20:07:10 506

原创 vscode 提示import cv2 ModuleNotFoundError: No module named ‘cv2‘解决方法,亲测实用!

vscode无法使用cv2,这个问题是由于anaconda 多环境导致的 ,默认VSCode里的默认终端是powershell,但是powershell不能执行conda activate,所以Python无法切换到需要的环境,我的解决方法是:VSCOD 按下CTRL+SHIFT+P,进入setting.json,也可以通过查看->命令面板打开在里面添加:"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe"

2021-09-10 21:39:34 14691 3

原创 PAT 乙级 1023 组个最小数 Python 最全解释,句句解析,清晰易懂

1023 组个最小数 (20 分)给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。输出

2021-09-10 10:16:18 235

原创 PAT 乙级 1022 D进制的A+B,最清晰解释,通俗易懂,掌握进制,原理简单!

1022 D进制的A+B (20 分)输入两个非负 10 进制整数 A 和 B (≤2 30 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103思路:本题主要考察对进制转换的理解,然后特别注意当A+B = 0时输出0即可。进制转换,比如579转为8进制,过程如下:首先,进行取余操作,579 % 8 = 3,并将每次取余

2021-09-09 15:31:55 142

原创 PAT 乙级 1021个位数统计 最简格式,使用count函数,浅显易懂

1021 个位数统计 (15 分)给定一个 k 位整数 N=d k−1 ​ 10 k−1 +⋯+d 1 ​ 10 1 +d 0 ​ (0≤d i ​ ≤9, i=0,⋯,k−1, d k−1 ​ >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中每一种不同的个位数字,以 D:M 的格式

2021-09-09 10:24:44 107

原创 PAT 乙级 1016 部分A+B,最全解释,清晰透彻。

正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。现给定 A、DA、B、DB,请编写程序计算 PA+PB。输入格式:输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0<A,B<1010。输出格式:在一行中输出 PA+PB 的值。输入样例 1:3862767 6 13530293 3输出样例 1:399输入样例 2

2021-09-03 19:41:26 316

原创 Python提高运算速度,优化input()参数,换为sys.stdin.readline()

优化接收参数过程,将input() 接收参数,改为 sys.stdin.readline()由于input 默认将每行最后的换行符删除掉,需要额外的运算。在python3环境下,读取数据量很大时,sys.stdin.readline()会提高不少运算速度根据计算,使用sys.stdin.readline()比使用input(),运算速度提高了近10倍。import sysprint('Plase input your name: ')name = sys.stdin.readline()pri

2021-09-01 21:25:39 957

原创 微信小程序不同组件view,text并排显示横行方法

不同组件并排显示,需要放置在一个view例如:在wxml中将text和scroll-view并排显示,则需要把它们放置在一个view中<view class="parilin"> <text class="verti_clockin">系统输出与发送框</text> <scroll-view scroll-y class="send_back" style="height:30vh;" scroll-into-view="{{lastindex_top}

2021-08-22 11:02:14 6245

原创 微信小程序苹果机型iOS连接蓝牙失败解决方法(wx.getBLEDeviceCharacteristics)

iOS在进行wx.getBLEDeviceCharacteristics获得特征值时,serviceId对应的uuid必须为大写才可以,否则抛出错误。我使用的uuid是(小写):显示fail修改后的uuid(大写):正常连接

2021-08-21 19:39:02 3672

原创 hexo 通过Markdown无法显示图片问题

有时Markdown可以显示图片,而上传hexo后无法显示图片,只要在Markdown的图片显示链接中将“\”修改为“/”,同时删除第一个和最后一个“\”修改为(关键是去掉头的"“和尾的”",同时把“\”修改为“/”)即可显示在hexo...

2021-08-11 08:54:05 687 4

原创 使用arduino输出QMC5883L的三轴磁场和YAW角

arduino上使用QMC输出通过IIC输出三轴磁力原始数据通过MechaQMC5883库输出yaw角通过IIC输出三轴磁力原始数据通过MechaQMC5883库输出yaw角我找了不少关于QMC磁力计的文章,发现不管是商家给的程序还是博客的其他文章,都是基于stm32的,而QMC在arduino上的应用却没多少,于是就一边看着数据文档,一边在arduino上实现QMC。这里用的是arduino nano,引脚连接:nano -> QMC5V -> VCCA5 -> SCL

2021-03-24 14:09:12 3502 3

原创 openCV人脸识别(从电脑摄像头获取图像)

openCV人脸识别(从电脑摄像头获取图像)首先安装openCV-Python库Haar级联检测器我们先选择识别一张静态图像再试试通过摄像头获取图像首先安装openCV-Python库pycharmHaar级联检测器找到OpenCV根目录下的data/haarcascades文件夹下包含了所有OpenCV的人脸检测的XML文件,这些文件可以用于检测静止图像、视频以及摄像头所得到的图像中的人脸。我们先选择识别一张静态图像识别的图像要保存至Haar级联检测器相同路径!import cv2

2021-02-04 21:05:35 2612 2

转载 二维数组井字棋

tic-tac-toe游戏  读入一个3×3矩阵,矩阵中的数字为1表示该位置上有一个X,为0表示该位置上有一个O,要求编写程序判断这个矩阵中是否有获胜的一方,输出表示获胜一方的字符X或O,或输出无人获胜。  本游戏获胜是指在同一行、同一列或同一对角线上,有三个相同字符。#include <stdio.h>int main(){ //定义变量 const int size = 3; int board[size][size]; int i, j; int numofXr,

2020-08-17 18:37:52 775 2

原创 PAT:1002写出这个数

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu#include<string.h>#include<stdio.h>int mai

2020-08-15 13:17:50 89

原创 Python遍历字典中的键值对

Python为字典类型提供了items()方法,items()方法会将字典里的所有的键与值一起返回。例如,餐馆有一个菜单包含了菜名和价格信息。菜名和价格顾客都需要知道,可以通过遍历输出menu字典的键和值来实现。#coding = utf-8# 创建并初始化menu菜单字典menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}# 利用items()方法遍历输出键和值for key,value in menu.items(): pr

2020-08-06 20:41:08 2763

原创 遍历字典中的值

对于餐馆中的收银员来说,他们可能并不想知道菜单的菜名,只需要知道菜的价格然后收账即可。所以对于收银员来说,我们需要遍历menu字典中的所有菜的价格。Python为字典类型内置了values()方法,该方法会将字典里的值遍历出来,例如:# 创建并初始化menu菜单字典menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}# 利用values()方法遍历输出值for value in menu.values(): print('food

2020-08-06 20:36:31 2815

原创 Python遍历字典中的键

遍历字典中的键对于餐馆中的厨师来说,他们并不想要知道菜的价格,只需要知道菜名然后将其做出来就行。所以对于厨师来说,我们需要遍历menu字典中的所有菜名。Python为字典类型内置了keys()方法,该方法会将字典里的键遍历出来,例如:# 创建并初始化menu菜单字典menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}# 利用keys()方法遍历输出键for key in menu.keys(): print('food_name

2020-08-06 20:35:35 2958

原创 Python切片列表选择复制

Python切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。其基本语法如下:list_slice = source_list[start????step]其中,source_list:被切片的源列表list_slice:切片后生成的子序列列表start:切片起始索引位置,省略则从头开始end:切片结束索引位置,省略则切至列表末尾step:切片步长,可选参数,表示

2020-08-06 20:32:56 215

原创 Python未知元素位置删除办法

删除指定值对应的元素有些时候我们并不知道要删除元素的位置索引,怎么办呢?别着急,Python还提供了remove()方法,可以直接通过元素值来删除对应的元素。其基本语法如下:source_list.remove(obj)其中,source_list为待修改的列表obj为待删除元素的值注意:如果列表中有多个值为obj的元素,remove仅删除位置索引最靠前的那个元素例如,将请客名单guests列表中的Zhang san删除。则相应的语句为:# 初始化guests列表,列表中有多个名为Zhang

2020-08-05 18:30:51 292

原创 删除指定位置的元素(del方式与pop方式)

del方法在Python中,调用del函数能够删除指定索引位置的元素,其基本语法如下:del source_list[index]其中,source_list:为待修改的列表index:为待删除元素的位置索引例如,将请客名单guests列表中的Zhang san删除。则相应的语句为:# 初始化guests列表guests=['Zhang san','Li si','Wang wu','Zhao liu']# 将列表中的`Zhang san`删除del guests[0]# 输出新的gu

2020-08-05 18:28:53 2614

原创 Python修改列表元素

修改列表元素Python中修改列表元素的方法为,直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下:source_list[index] = obj其中,source_list:为待修改的列表index:为待修改元素的位置索引obj:为待元素的新值例如,将请客名单guests列表中的Wang wu改为Wang shi。,则相应的语句为:# 初始化guests列表guests=['Zhang san','Li si','Wang wu','Zhao liu']# 将列表中

2020-08-05 18:26:14 996

原创 Python在列表尾部添加元素

在列表尾部添加元素在Python中,可以使用append()方法向一个列表的尾部追加一个元素,其基本语法如下:source_list.append(obj)其中,source_list:为待修改的列表obj:为待插入的元素例如,要向guests列表尾部增加客人Hu qi,相应的语句为:# 初始化guests列表guests=['Zhang san','Li si','Wang wu','Zhao liu']# 向guests列表尾部追加一个名为Hu qi的客人guests.append(

2020-08-05 18:24:36 12362

空空如也

空空如也

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

TA关注的人

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