自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 keil算法优化总结(持续更新)

keil编程算法总结

2023-03-20 17:00:20 325

原创 51单片机独立按键操作逻辑优化

51单片机按键操作逻辑优化

2023-03-13 15:38:06 424

原创 51单片机节电模式&看门狗

51单片机节电模式&看门狗

2023-03-13 09:14:40 2302

原创 C51编程中sfr,sbit的用法以及位地址和字节单元地址的区别

C51编程中sfr,sbit的用法以及位地址和字节单元地址的区别

2023-03-09 09:56:35 4302

原创 51单片机P0~P3口工作原理

51单片机P0~P3口内部机构,即工作原理

2023-03-06 11:40:55 6282

原创 51单片机寻址方式

8051内核的单片机指令系统的8种寻址方式

2023-03-05 11:17:47 484

原创 单片机最小系统_晶振电路&复位电路

51单片机最小应用系统的两个重要的电路:晶振电路和复位电路

2023-03-04 11:37:33 13912

原创 RS&D锁存器基础

从RS锁存器学到D锁存器

2023-03-02 11:50:30 1150

原创 51单片机的存储器结构

51单片机的存储器结构

2023-03-01 11:46:01 1602

原创 C51单片机各引脚功能

51单片机各个引脚功能

2023-02-28 09:53:50 9252

原创 冒泡排序适用于各种类型

#include<stdio.h>int com_int(const void*e1,const void*e2)//运算必须知道,元素的类型{ return *((int*)e1)-*((int*)e2);//对int类型进行比较}int com_f(const void*e1,const void*e2){ if(*((float*)e1)-*((float*)e2)>0) return 1; else if(*((float*)e1)-*((float*)e2).

2021-07-05 17:02:56 442

原创 回调函数(举例)

#include <stdio.h>int add(int x,int y){ return x+y;}int sub(int x,int y){ return x-y;}int mul(int x,int y){ return x*y;}int div(int x,int y){ return x/y;}void menu(){ printf("0.推出\n"); printf("1.加\n"); printf("2.减\n"); printf(.

2021-07-04 13:49:48 1000

原创 数组参数传递

一维数组#include <stdio.h>void test(int a[]){}//不指定数组大小void test(int a[10]){}//指定数组大小void test(int* a){}//a中传过来的是首元素的地址,既然是地址就可以用指针来接受int main(){ int a[10]={0}; test(a); return 0;}指针数组#include <stdio.h>void test(int* a[]){

2021-07-03 14:59:13 99

原创 指针数组和数组指针

指针数组本质上是数组,让我们来看一下它是如何定义的int a,b;int* p[2]={&a,&b};如图定义了一个名为p的数组,有两个指针类型的元素,每个指针是int*类型的,也可以放入数组名,因为数组名本质上就是一个指针变量,*是解引用操作,*p可以通过p内存储的地址,找到这个地址对应的值,大概可以看成 int* arr=arr[0] ,所以*arr得到的值就是arr[0]里的值数组指针本质上是指针int arr[]={1,2,3}int (*p)[10.

2021-07-02 14:41:19 55

原创 浮点数类型

每一个小数都可以用科学计数法,3个参数来表示。比如-12.5,就可以表示为(-1)^1x1.23x10^1,当然在计算机中我们可以用二进制来表示,可以表示为-1100.1,关于小数部分的十进制转二进制,可以用乘二取余法,那么这个二进制数可以表示为(-1)^1x1.100x2^3,三个参数分别为s--->(-1)的指数用来表示浮点数的正负,M是1.1范围在1~2之间,2的指数E这三个参数在32位电脑的存储方式,s占第一位1为正2为负,2~10位存放E,由于这8位表示的是无符号数,表示范围是0~.

2021-07-01 15:09:37 348

原创 char类型讲解

首先从无符号开始讲的话,也就是unsigned char,范围是0~255,由于在内存中都是以正数形式存储的,所以原反补码都相同。char类型默认为有符号,即最高的一位为符号位,范围是-128~127,若最高位为1,则其为负数,以补码形式存储,一个负数的真实值由原码来表示,最高位为符号位,而在计算机的存储值可以用补码来表示,补码可以由原码除符号位以外按位取反,再加一得到。char类型在计算的时候范围在-128~127,char的值形成一个闭环,若将127+1,得到的值是-128...

2021-06-29 14:49:31 4256

原创 整型提升。

由于32位计算机是以,4字节为单位进行计算的,如果在编程的时候,使用char类型的变量进行计算,那么这个变量的值就会被整型提升,具体方法为,1字节的二进制数,会被补充到4字节,补充内容为,符号位数的值,最后计算得到的值截取原来的一字节,得到的数都是以补码形式存在...

2021-06-28 14:20:06 76

原创 数组和冒泡排序

给数组char类型赋值char a[]="abc"char a[]={'a','b','c','\0'}两者等价,把一个字符串付给数组时,会自动添加一个'\0',两个声明方式都包含四个元素。strlen可以读取一个数组的长度,前提是该数组必须以'\0'结尾,strlen不会把'\0'包括在数组长度中。而sizeof 可以读出数组的长度*类型字节长度,包括'\0'。'\0'的ascll码是0。冒泡排序详解。#include <stdio.h>void f(int* a,

2021-06-25 18:42:07 119

原创 递归的思想

#include<stdio.h>int f(int i){ if(1==i) { return 1; } return i*f(i-1);}int main(){ int n=6; int z=f(n); printf("%d",z);}尾递归void p(int n){ if(n>=2) { p(n/2); } printf("%d",n%2); }int main(){ int n=254; p(n); ret.

2021-06-21 17:55:34 58

原创 6.20注意常见错误

你在输入缓冲区输入时(以回车为结束标志),scanf函数会读取回车前的内容,而回车是也是一个字符'\n',它的存在会影响之后getchar();函数的读取。fo

2021-06-20 16:58:26 50

原创 6.19关于分支结构的进阶

else会和最近的一个if匹配switch函数的使用int a;switch(a) { case 1: case 2: case 3: case 4: case 5: printf("weekday\n"); break; case 6: case 7: printf("weekend\n"); break; }switch

2021-06-19 14:00:35 42

原创 2021-06-18

#include <stdio.h>struct book//对结构体进行定义,相当于定义了一个大变量,{ char name[20];//结构体由若干个变量构成 int price; int quantity;};//结尾记得加分号表示定义完成int main(){ struct book b={"c plan",20,10};//声明变量:struct book(变量类型),b(变量名)={(对结构体里每一个变量进行赋值)} struct book*p=&b;.

2021-06-18 14:42:46 29

原创 Static关键词用法

总结一下昨天学的内容1 static这个关键词,使用的时候一般放在声明变量的前面比如:static int a=1.

2021-06-17 13:38:14 59

空空如也

空空如也

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

TA关注的人

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