自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RLC串联电路的阻抗

RLC串联电路的阻抗为什么不是直接相加,而是向量相加?如图所示,以第一种电路为例:这是一个RC串联电路,假设某一时刻信号的传递方向是从左向右,那么信号在传输到电容左侧的时候,电容就会充电,这时就会使得信号在传输到电容另一端的时候产生一定的时延,在信号传输到电容的右侧的同时,其实信号也传输到了电阻的右侧,因为电阻不是储能器件,所以信号的传输几乎就没有时延,也就是说,信号从电容的左侧传输到电阻的右侧的时候,是有一定的时延的,这就导致了电容的容抗值和电阻的阻值没有同时作用在信号传输的某一时刻,自然在这一时刻

2021-06-05 22:05:39 3910

原创 0-1背包问题 ,背包问题(可视化)

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <graphics.h>#define N 30#define c 10000int m[N+1][c];int zeroOrOne[N];int flag;int total_w = 0, total_v = 0;struct {int w;//重量int v;//价值}wuPing[N];void dra

2021-06-01 18:37:14 742

原创 最近点对问题蛮力法(可视化)

#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>#include<graphics.h>#define MAX 50int X1, X2, Y1, Y2;TCHAR s[5];struct {int x, y;}zuobiao[MAX];void display(double distance) {settextcolor(RED);_s

2021-06-01 11:54:28 429

原创 凸包问题分治法(可视化)

#include <stdio.h>#include <stdlib.h>#include <math.h>#include <graphics.h>#include <time.h>#define MAX 100int min = 0, max = 0, high, n = 40, UpOrDown, flag, frequency = 0, flag1 = 0, A1, B1;//flag标志,1表示上面还有点,0表示上面没有点;f

2021-06-01 10:45:58 996

转载 TCP抓包报文分析

https://blog.csdn.net/qq_40803710/article/details/81414368

2021-05-27 09:18:04 498

原创 分组交换的时延计算

分组交换时延的定义应该是最后的比特从离开发送端开始到到达接收端为止的时间,下来我们通过一个例子来说明一下:题目:要传送的报文共 x(bit),从原点到终点共经过 k 段链路,每段链路的传播时延为 d(s),数据率为 b(bit/s),分组交换时分组长度为 p(bit),求分组交换的时延。分析一下:最后的比特离开发送端的时延 x/b最后的比特传播时延 kd最后的比特经过中途路由器所需要的的时延 (k-1)p / b将最后一个比特所有的时延加起来就是分组交换的总时延,即:x/b + kd +(k

2021-03-21 23:23:26 18199 13

原创 java中求平方函数和开方函数

求平方:Math.pow(x,2)求三次方:Math.pow(x,3)求四次方Math.pow(x,4)…开方:java.lang.Math.sqrt(x)java.lang.Math.sqrt(4) 的结果是2

2021-03-19 17:43:49 16200

原创 理解为什么分组交换比报文交换时延小

我们把整个要传送的内容理解为一个班集体,里面有好多学生。假设这一个班的同学都要从北京出发去上海,而且中途要换好几个站,报文交换相当于大家每到一个站都要等其他人,等全班人都到了这个站再出发(注意同学们每一站都不是同时到的),这样每站都这么等一下,导致效率较为低下。而分组交换就是各走各的,谁也不用等谁,每个人都相当于一个分组,这样一来效率就会大大提高,当然谁出发的早谁先到的可能性就大,但后出发的也不一定比前出发的迟,所以发送的顺序不一定是接收的顺序。...

2021-03-17 19:08:42 4307 1

转载 路由表 FIB表 快速转发表

控制平面与转发平面可以是物理分离,也可以是逻辑分离。高端的网络设备(如核心交换机、核心路由器)一般采用物理分离。其主控板上的CPU不负责报文转发,专注于系统的控制;而业务板则专注于数据报文转发。如果主控板损坏,业务板仍然能够转发报文。路由器转发分组的关键是FIB表,在系统中报文转发时查找的是FIB表而非路由表。这是因为路由表表示所有的有效路由所形成的表项,并不指导转发。FIB表是网络层用来控制数据报发送的。FIB中包含了路由器在转发报文时所必需的一组最小信息。当路由表中存在多个路由项可以匹配目的IP地址

2021-03-17 08:56:06 1897

转载 网桥转发表和自学习法

网桥转发表和自学习法网桥刚接入以太网时,网桥中的转发表是空的,随着站点间数据传输,网桥采用“自学习法”填写转发表内容。假设有以下5个站接在三个局域网中,并在发送数据。一开始转发表是空的,接下来H1发送数据帧给H5,H3发送数据帧给H2,H4发送数据帧给H3,H2发送数据帧给H1,讨论B1和B2对数据帧的处理和转发表的情况。H1发送数据帧给H5:数据帧进入网桥B1的端口1,B1中没有H1的记录,所以更新转发表写入H1(地址:MAC1,端口:1),并且转发,数据帧接着到达B2的端口1,B2中没有H1的记

2021-03-17 08:15:31 5063 1

原创 java中定义二维数组

例如:int [][]aa = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};其存储方式如下图所示:

2021-03-16 08:41:56 189

转载 如何理解算法中的渐进符号

如何理解算法中的渐进符号我们分析一个算法的时候,常常需要用到数学去描述其性能。最常用的的是ø。比如在一段程序中有For(I = 0,I < n ; I ++) For(J = 0; j < n ; j++);For (cnt = 0; cnt < n ; cnt ++);我们会说其最坏情况是n^2+ n,这时候,实际上我们没有考虑机器因素,我们把每一条指令的执行时间都当做单位1来看,如果我们考虑到机器因素,比如在A机器上,每条指令执行的速度是c1,那么他的最坏情况是( n^

2021-03-14 21:11:50 267

转载 算法分析中常用的几种渐进符号

算法分析中常用的几种渐进符号在算法分析中,经常会遇到以下几种渐进符号渐近精确界记号:渐近上界记号 :渐近下界记号 :非渐近紧确上界:o(小-oh)非渐近紧确下界:ω(小-omege)下面对渐进符号进行详解:大写O符号f(n)=O(g(n)),这里f(n)是分析出来算法的执行次数的函数,O的定义: 当且仅当存在正的常数c和n0,使得对于所有的n>=n0,有f(n)<=cg(n)。这里cg(n)就是函数f(n)的上限。讲到这是不是很迷糊,我刚开始也这样,不着急,看下面例子,

2021-03-14 19:25:34 940

原创 一个简单的算法平均效率的例子

算法平均效率就是算法的平均执行次数以下是对线性表的查找操作该算法在效率最高时为1,即第一个数就是要查找的数,效率最低时为你n,即最后一个数是要查找的数或者没有要查找的数,但我们相比于两个极端的效率而言,更希望得到一个平均效率。我们分析上例:查找有两种结果,查找成功和查找失败。设查找成功的概率为p,则查找失败的概率为(1-p)。查找成功时,若关键值出现在列表中的概率相同,即在列表中的第i个位置查找成功的概率为p/n,需要完成i次比较(1小于等于i 小于等于n ),查找失败时所需的比较次数是n,则有算

2021-03-13 21:05:13 1550

原创 冯·诺依曼体系结构

冯·诺依曼体系结构冯·诺依曼体系结构的主要内容是:数字计算机的数值采用二进制;计算机应该按照程序顺序执行。同时,这个体系结构的根本在于程序是装入内存中执行的,内存能够进行随机存取,而指令是逐条顺序执行的,没次执行一步操作。相应的,设计在这种计算机上运行的算法被称为顺序算法。...

2021-03-12 20:31:16 356

原创 char类型数据所占字节

C语言中占一个字节java语言中占两个字节

2021-03-12 13:09:39 560

原创 有序图的拓扑排序

拓扑排序的结果不是唯一的上图为一个表示课程依赖关系的AOV网络,节点存在前驱和后继的关系,C0,C1只有后继节点C6,C5只有前驱节点,剩下的既有前驱节点又有后继节点。在进行拓扑排序的时候每次取一个无前驱的节点,然后将该节点从图中去掉,知道所有的节点被取完。所以拓扑排序不是惟一的。上图其中两种拓扑排序的结果如下:C0,C1,C2,C4,C7,C8,C3,C6,C5C1,C0,C7,C8,C2,C4,C3,C5,C6...

2021-03-12 09:37:03 2280

原创 辗转相除法原理讲解

首先介绍一下辗转相除法:即m 和 n求最大公因数(假设m大于n),先用 m 除以 n ,如果余数 r 为 0 ,则 n 就是最大公因数,否则,将 n 给了 m ,将 r 给了 n ,再用 m 除以 n ,如果余数 r 为 0 ,则n为最大公因数,否则重复执行上述操作,直至 r 为 0 ,此时的 n 就是 m 和 n 的最大公因数。相信很多人包括我在内都对这个算法不理解,我今天突然有了些想法,分享给大家。我觉的辗转相除法就是一个分块的思想,为什么这么说呢,我们通过一个例子来说明:假设 m = 72

2021-03-11 22:51:48 28409 31

原创 C语言指针和Java引用

举个例子:C语言中int a[4];a是直接指向内存的指针,通过a可直接访问内存Java中int []a = new int[4];a是存放在栈存储区的,而实际要访问的内容是存放在堆存储区中的,a中存放的就是堆存储区中某一段的地址,要想访问堆存储区中的内容,还要通过栈中的引用间接访问堆存储器...

2021-03-11 17:45:28 130

原创 在定义结构体时不能开辟空间

在定义结构体时不能开辟空间比如这个例子:typedef struct{recordnode head;head = (recordnode)malloc(sizeof(recordnode));int size;}record;这是因为在用该结构体定义变量的时候,比方说{record a;}这时候计算机执行到{head = (recordnode*)malloc(sizeof(recordnode));}这条语句的时候,就会为head分配空间,而在定义结构体的时候就执行到{head = (r

2020-12-04 07:43:05 604

原创 为什么链表结构体中不能定义自身的变量

为什么链表的结构体中能够定义指向自身的指针而不能定义自身的变量呢?举个例子:typedef struct node{datatype info;struct node a;}Node;在这个链表结构体中,想要定义自身(struct node)类型的变量a(即自身类型),要知道,现在做的工作就是在定义(构造)struct node这个结构体,想要定义struct node这个变量至少要等到struct node这个结构体构造完了才可以吧,因为定义变量的时候要为这个变量分配存储空间,如果结构体不完整

2020-12-03 19:56:05 406

原创 数组的下标为什么从0开始

关于数组的下标为什么从0开始,我想这是许多初学数组的同学所疑惑的,在此我发表一些我的看法。首先假设我要定义一个int a;相信大家对这个还是比较容易理解的,这个时候系统自动为a分配2个字节的存储空间(有的编译器是4个 一般是两个),a无可厚非,指的就是那两个字节的空间,如果要给a赋值的话,直接a=2;就好了。这个时候a是一个变量,也就是说a可以等于2也可以等于别的。如果我定义一个int a[3];这个时候a就不是变量了,而是一个指针,而且要访问数组的话是从a[0]开始的。是这样的,你不是要申请3个int

2020-10-29 07:57:47 750

原创 链表节点结构体的定义

定义链表节点结构体的时候,以下定义方法是错误的:typedef struct link_node{datatype info;node *next;}node;因为在定义这个结构体的时候,使用了自定义语句,将struct link_node同等为node,但是在定义next指针变量的时候,系统时一行一行读代码,所以系统并不认识node这个东西,所以会发生错误,只有在定义了node之后才可以使用node这个东西。typedef struct link_node{datatype info;

2020-09-22 11:01:44 4530

转载 IEEE 754浮点数标准讲解

本文摘自CSDN其他大佬的讲解在计算机系统的发展过程中,业界曾经提出过许多实数的表达方法,比较典型的有相对于浮点数(Floating Point Number)的定点数(Fixed Point Number)。在定点数表达法中,其小数点固定地位于实数所有数字中间的某个位置。例如,货币的表达就可以采用这种表达方式,如55.00或者00.55可以用于表达具有4位精度,小数点后面有两位的货币值。由于小数点位置固定,所以可以直接用4位数字来表达相应的数值。但我们不难发现,定点数表达法的缺点就在于其形式过于僵硬,

2020-08-21 20:17:18 1353

原创 二进制小数与十进制的转化

举个例子十进制数13.125和二进制数1101.001的转化过程,二者其实是相等的:十进制转二进制:先转整数部分13÷2=6…16÷2=3^03÷2=1…11÷2=0^1所以整数部分是1101小数部分转二进制先用0.125乘2使其对应的二进制数小数点向右移一位,显然其结果为0.25小于1,所以小数点左边的那个数为0(要是为1的话,那么乘以2以后就大于1),所以小数点后第一位是0,以此类推,得到小数部分为0.001,所以所求二进数为1101.001二进制转十进制:整数部分1×23+1×2

2020-08-19 23:07:25 4481

原创 十进制数与其他进制数转换方法及原理

很多人在遇到进制转换时只知道方法,不知道原理。今天,我就为大家讲解一下其方法及原理:①十进制转其他进制的方法及原理:举个简单的例子:十进制数13怎么转为二进制数。许多人都知道用13一直除以2,取余数,最后反向将余数组合起来。但其是什么原理呢?首先它是转二进制,我们都知道二进制数是逢二进一,所以我们就看看13有多少个2是吧,于是就用13÷2得到6余1的结果,说明有6份2,余下的1不够2,所以没进,那当然这个1就是所求二进制数的个位了,此时的6已经是二进制数的属性了,其代表的十进制数为12,但是二进制数要逢

2020-08-19 19:30:56 8142 1

原创 浮点型数据讲解

以下内容摘抄字谭浩强老师的程序设计基础第五版3.2.5浮点型数据浮点型数据是用来表示具有小数点的实数的。为什么在C语言中把实数称为浮点型数呢?在C语言中,实数是以指数形式存放在存储单元中的。一个实数表示为指数可以有不止一种形式,如3.1459可以表示为3.14159×10^0 ,0.314159×101,0.0314159×102,31,14159×10^-1,或314,159×10-2等,它们代表一个值。可以看到:小数点的位置是可以在314159几个数字之间、之前或之后(加)...

2020-08-19 13:45:11 7471

原创 int类型数据的存储

以下内容摘自谭浩强老师的C程序设计第五版。(3.2.3整型数据)基本整型(int型)编译系统分配给int型数据2个或4个字节(由具体的C编译系统自行决定)。如Turbo C 2.0位4为每一个整型数据分配2个字节(16个二进制位),而Visual C++位4为每一个整型数据分配4个字节(32位)。在存储单元的存储方式是:用整数的补码(complement)形式存放。一个正数的补码是此正数的二进制形式,如5 的二进制形式是101,如果用两个字节存放一个整数,则存放在存储单元中数据形式如图3.5所示:如

2020-08-18 20:24:10 4598 1

原创 字节、字、位、比特之间的关系

1位=1比特;1字=2字节;1字节=8位;1字=16位。1、位位是计算机存储的最小单位,简记为b,也称为比特(bit)计算机中用二进制中的0和1来表示数据,一个0或1就代表一位。位数通常指计算机中一次能处理的数据的大小;2、比特比特(bit)是由英文BIT音译而来,比特同时也是二进制数字中的位,是信息量的度量单位,为信息量的最小单位;3、字节字节,英文名Byte,是计算机用于计量存储容量的一种计量单位,通常情况下一字节等于八位,字节同时也在一些计算机编程语言中表示数据类型和语言字符,在现代计算机

2020-08-08 19:22:40 1954

原创 C语言一次性给多个变量赋值

scanf("%d%d%d",a,b,c);而不是scanf("%d,%d,%d",a,b,c);这里要注意那里是没有逗号的

2020-08-02 23:30:38 5878 1

原创 一个关于串口的小程序

在这里和新手分享一个简单的串口小程序#include “stm32f10x.h”void My_USART1_Init(void){GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ʹÄÜÏàÓ¦µÄʱÖÓRCC_

2020-07-09 17:56:23 876

空空如也

空空如也

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

TA关注的人

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