黑马程序员——C语言基础教程笔记_黑马程序员c语言-程序员宅基地

技术标签: C  c语言  编程语言  

黑马程序员——C语言基础教程笔记

https://blog.csdn.net/BinHeon



前言

研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun.itheima.com/”中根据课程所记下来的学习笔记。课程链接:http://yun.itheima.com/course/369.html


需要准备的软件:
1.Visual Studio(VS):(个人初学者,直接使用Community版本即可,这是免费版)
https://visualstudio.microsoft.com/zh-hans/downloads/
2.Qt:(个人初学者,下载一个免费版即可)
https://www.qt.io/download
3.Gcc:
https://sourceforge.net/projects/mingw/files/
安装教程:https://www.jianshu.com/p/dc0fc5d8c900
4.Linux环境(可能需要VMware虚拟机)



Day-1

1.C语言概论

1.1 什么是C语言

C语言来源:
百度百科:https://baike.baidu.com/item/c%E8%AF%AD%E8%A8%80/105958?fr=aladdin
维基百科:https://zh.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80

    语言是用来交流沟通,具有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。一方说,一方听;说的一方传递信息,听的一方接收信息;说的一方下达命令,听的一方遵循命令做事情。
    语言是人和人之间的交流;C语言则是人与机器之间的交流。

1.1.1 C语言特点
优点 缺点
代码量小 写代码实现周期长
执行速递快 可移植性差
功能强大 过于自由,经验不足易出错
编程自由 对平台库依赖较多
1.1.2 学习C语言的理由

    考试、z做黑客、大学课程、企业面试、工程项目、各种高级程序语言的实现…
在这里插入图片描述
在这里插入图片描述

1.1.3 发展方向

在这里插入图片描述

1.1.4 C语言中的关键字
关键字 意义与作用 关键字 意义与作用
定义类型相关
int 整型,4字节(32/64位机) char 符号型,1字节
short 短整型,2字节 long 长整型,4字节(16/32位机)
float 单精度浮点型,小数,4字节 double 双精度浮点型,小数,8字节
signed 符号型 unsigned 无符号型
static 静态存储,修饰数据,表示该数据为静态变量 extern 外部存储,修饰数据/函数,表示该数据/函数在其他位置已被定义
auto 自动存储,修饰数据,表示该数据为自动存储的临时变量 register 寄存器存储,修饰数据,表示该数据尽量存储在寄存器中
const 只读,修饰数据,表示该数据只读 volatile 易变,修饰数据,表示该变量可能被意想不到地改变,每次使用都必须且小心读取,防止编译器优化该变量
struct 结构体,由具有相关性的若干成员数据组成,成员数据类型可不同,各自拥有各自的存储空间 union 联合体/共用体,由具有相关性的若干成员数据组成,成员数据类型可不同,成员数据公用一段存储空间
enum 枚举型,用于限定取值范围,其值为常量值 void 无类型/空,声明函数无返回值或无参数
typedef 用以取别名 char* 地址指针,用于对具体地址的访问,2字节(16位机)/4字节(32位机)/8字节(64位机)
控制语句相关
if 如果,条件语句 else 否则,条件语句
for 循环语句 while 循环语句
switch 选择/条件分支语句 case 条件分支
do 执行,通常与循环语句搭配使用 goto 无条件跳转语句,可作为循环语句使用
break 无条件跳出当前循环/条件分支 continue 跳过当前循环,继续下次循环
default 否则,选择语句中的默认分支 return 返回,用于终止子程序或需要子程序返回值时使用
sizeof 所占字节数,用于计算数据类型或变量长度
1.1.5 C语言中的运算符与优先级

    1)运算符

    ①算数运算符
在这里插入图片描述
    ②关系运算符
在这里插入图片描述
    ③逻辑运算符
在这里插入图片描述
    ④赋值运算符
在这里插入图片描述
    ⑤位运算符
在这里插入图片描述
    ⑥其他运算符
在这里插入图片描述

    2)优先级
在这里插入图片描述


2.HelloWorld——第一个C语言程序

2.1 开发环境:VS2019 Community

     1)新建工程:
     ①新建项目;②新建C++控制台应用;③项目命名“mhelloword”,并选择项目保存位置;④创建;⑤在项目树中,“源文件”下添加“新建项”,并选择“C++文件”,名称命名为“helloworld.c”以添加helloworld.c源文件;⑥可将原项目中自动生成的C++源文件“mhelloworld.cpp”从项目中移出;⑦在helloworld.c源文件中 编写C源码。

在这里插入图片描述

    ** 2)编写C源码:**

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include <stdio.h> // 导入标准输入库文件,里面有printf等函数
                   // 如果是自定义库,可用 #include "xxx.h"
// -----------------------------------   全局参数   ---------------------------------

// -----------------------------------     函数     ---------------------------------
//------------------ 1. 函数1

// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
    
	printf("Hello World!,This is a printf() function test code... \n"); // “//”行注释,注释内容不参赛编译;一句语句的结束需要用“;”;“\n”为结束换行字符,“\”在此处为转义字符。

	return 0; //
}
// -----------------------------------     end     ---------------------------------

3.系统函数system

3.1 函数作用以及原型

所在库:stdlib.h   系统
功能:1.可以调用系统命令(如,cmd中运行的命令);2.通过路径可以调用相应的应用程序(如,QQ:安装->在D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe)
函数参数:command -- 外部执行程序名
函数返回值:成功- 0;失败- 任意数字
int system(const char *command);

3.2 示例代码

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include <stdlib.h> // 导入系统库文件,里面有system等函数
// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
    
	//1.调用系统命令,打开电脑自带的计算器
	注:详细的命令参考https://www.cnblogs.com/walkwaters/p/12153364.html
	system("calc");
	//2.通过路径,打开安装的QQ等软件
	//路径:D:\Program Files(x86)\Tencent\QQ\Bin\QQScLauncher.exe
	注:由于该路劲存在空格字符,所以需要对“Program Files(x86)”进行处理
	    处理为:不包括空格,“前6字符”+~2”替换“Program Files(x86)”
	    其中2是因为D盘符下同时存在“Program Files”和“Program Files(x86)”
	    且“Program Files(x86)”从上往下排第2
	system("D:\\Progra~2\\Tencent\\QQ\\Bin\\QQScLauncher.exe");// 一般用“/”代替“\\”
	return 0; //
}

4.C程序编译步骤

     C程序编译成可执行程序4步:
        1.预处理 "gcc -E hello.c -o hello.i"
            宏定义处理、头文件处理、条件编译、注释删除等操作。
        2.编译 "gcc -S hello.i -o hello.s"
            检查语法,将预处理后的文件生成汇编文件。
        3.汇编 "gcc -c hello.s -o hello.o"
            将汇编文件生成目标文件(二进制文件)。
    4.链接 "gcc hello.o hello"
            将各种依赖库链接到最终的可执行程序中。

C程序编译成可执行程序4步:
gcc -E hello.c -o hello.i  --> 预编译
gcc -S hello.i -o hello.s  --> 预编译、编译
gcc -c hello.s -o hello.o  --> 预编译、编译、汇编
gcc hello.o -o hello       --> 预编译、编译、汇编、链接

编译1步完成:
gcc -o hello hello.c hello1.c  --> 一次性编译成可执行文件

在这里插入图片描述

在这里插入图片描述


5.CPU和内部寄存器

5.1 64位/32位区别

    1)、寄存器是CPU内部最基本的存储单元。
    2)、CPU对外是通过总线(地址、控制、数据)来和外部设备进行数据交互,总线的宽度是8位,CPU内部的寄存器也是8位,那么这个CPU就是8位CPU;如果总线是32位,寄存器也是32位,那么这个CPU就是32位;如果CPU内部寄存器是32位,但是总线只有16位,那么CPU为准32位
    3)、高位的CPU兼容低位CPU,但是低位不能兼容高位CPU;
    4)64位CPU架构运行64位软件操作系统,那么这个系统为64位;64位CPU架构运行32位软件操作系统,那么这个系统为32位。

5.2 CPU内部寄存器名字

在这里插入图片描述


6.汇编语言(与C语言简单比较)

/* ----------------------------------------------------------------------------------
	C code for:
	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
#include <stdio.h> // 导入标准输入库文件,里面有printf等函数
   // 如果是自定义库,可用 #include "xxx.h"
// -----------------------------------     main     ---------------------------------
int main() //一个程序有且只有一个主函数(main)
{
    
	// 采用C语言计算a+b的和并幅值给c
	int a = 10;
	int b = 20;
	int c;
	c = a + b;
	printf("C  --> %d\n", c);

	// 采用汇编语言计算a+b的和并幅值给c,eax表示32位的寄存器
	__asm    -->使用汇编
	{
    
		mov a, 30     -->30移动(赋值)到a
		mov b, 40
		mov eax, a    -->将a移动(赋值)32位寄存器eax
		add eax, b    -->加上eax和b
		mov c, eax   
	}
	printf("_asm  --> %d\n", c);
	
	return 0; 
}
// -----------------------------------     end     ---------------------------------


Day-2

1.数据类型

在这里插入图片描述

1.1 数据类型关键字

关键字 意义与作用 关键字 意义与作用
int 整型,4字节(32/64位机) char 符号型,1字节
short 短整型,2字节 long 长整型,4字节(16/32位机)
float 单精度浮点型,小数,4字节 double 双精度浮点型,小数,8字节
signed 符号型 unsigned 无符号型
struct 结构体,由具有相关性的若干成员数据组成,成员数据类型可不同,各自拥有各自的存储空间 union 联合体/共用体,由具有相关性的若干成员数据组成,成员数据类型可不同,成员数据公用一段存储空间
enum 枚举型,用于限定取值范围,其值为常量值 void 无类型/空,声明函数无返回值[void fun()]或无参数[fun(void)]或万能指针[fun(void*)可传递任何keixing]

1.2 数据存储相关关键字

关键字 意义与作用 关键字 意义与作用
static 静态存储,修饰数据,表示该数据为静态变量 extern 外部存储,修饰数据/函数,表示该数据/函数在其他位置已被定义
auto 自动存储,修饰数据,表示该数据为自动存储的临时变量 register 寄存器存储,修饰数据,表示该数据尽量存储在寄存器中
const 只读,修饰数据,表示该数据只读 volatile 易变,修饰数据,表示该变量可能被意想不到地改变,每次使用都必须且小心读取,防止编译器优化该变量

1.3 查看可执行程序所需空间——size

size project3_para.exe

在这里插入图片描述


2 常量与变量

    常量/变量名的格式:只能,“_”下划线,数字,字母,且不以数字开头,不能和关键字冲突;字母区分大小写。

2.1 申明常量示例

1.通过宏定义:
#define Pi 3.1415926
2.通过只读关键字定义
const double pi = 3.1415926;

2.2 声明变量示例

在这里插入图片描述

int a;            -->  申明整数变量a ,后续可如a=-10去使用
unsigned int b;   -->  申明正整数变量b ,后续可如b=10去使用
float c;          -->  申明单精度小数变量c ,后续可如c=10.126464去使用
double d;         -->  申明双精度小数变量d 

float x = 0.2f; //f表明小数

2.3 整型变量的定义和输出

    一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。
    1) 整型数据类型包括:

整型 占用空间 取值范围
short 2字节 有符号: -32768 ~ 32768 [-2^15 ~ 2^15] ;无符号:0~65535 [0 ~ (2^15)-1]
int 4字节(与操作系统有关) 有符号:-2147483648 ~ 2147483647 [-2^31 ~ (2^31)-1];无符号:0 ~ 4294967295 [0 ~ (2^32)-1]
long 4字节 有符号:-2147483648 ~ 2147483647 [-2^31 ~ (2^31)-1];无符号:0 ~ 4294967295 [0 ~ (2^32)-1]
long long 8字节 有符号:-2^63 ~ (2^63)-1;无符号: 0 ~ (2^64)-1

    2) 整型数据表现的形式有:

整型常量 意义
10 代表 int 类型的十进制数 10
10l / 10L 代表 long 类型的十进制数 10
10ll / 10LL 代表 long long 类型的十进制数 10
10u / 10U 代表 unsigned int 类型(无符号整型)的十进制数 10
10ul / 10UL 代表 unsigned long 类型(无符号长整型)的十进制数 10
10ull / 10ULL 代表 unsigned long long 类型(无符号长长整型)的十进制数 10
代码编写过程中,只有十进制/八进制/十六进制的体现
int a = 10;   // 十进制的10
int b = 082;  // 八进制的10
int c = 0xa;  // 十六进制的10
long d = 100l;

printf("%d",a);
printf("%d",b);
printf("%d",c);
printf("%ld",d)

    3) 打印输出整型数据:

占位符 含义
%d 输出一个有符号的十进制整型类型数据
%hd 输出一个有符号的十进制 short int 短整型类型数据
%ld 输出一个有符号的十进制 long int 短整型类型数据
%o 输出一个有符号的八进制整型类型数据
%x 输出一个有符号的十六进制整型类型数据,字母以小写形式
%X 输出一个有符号的十六进制整型类型数据,字母以大写形式
%u 输出一个无符号的十进制整型类型数据
printf("%d",a);   --> 打印整数a
printf("%f",b);   --> 打印单精度小数b
printf("%.2f",c); --> 保留2位小数,打印c
printf("%lf",d);  --> 打印双精度小数

2.4 字符型变量的定义和输出

    字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(’ ')把字符括起来。
    字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。

char a = 'x';
printf("a sizeof -> %d\r\n",sizeof(a));  打印查看a长度
printf("a print char -> %c\r\n",a);      打印查看a中字符
printf("a print ascii -> %d\r\n",a);     打印查看a中字符所对应的ascii码

char b;
scanf("%c",&b);  键盘输入一个字符赋值给b

2.4 实型(浮点型)变量的定义和输出

    实型变量也可以称为浮点型变量,浮点型变量是用来存储小数数值的。在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), 但是double型变量所表示的浮点数比 float 型变量更精确。

实型(浮点型) 占用空间 取值范围
float 4字节 7位有效数字(注意:不是指的小数后面几位,而是指的算上整数部分,有效数字一共7位)
double 8字节 15~16位有效数字(不是指的小数后面几位,而是指的算上整数部分,有效数字一共16位)

    由于浮点型变量是由有限的存储单元组成的,因此只能提供有限的有效数字。在有效位以外的数字将被舍去,这样可能会产生一些误差。

典型赋值:
float a = 3.141592;
double b = 3.1415926;

科学法赋值:
a = 3.2e3f;             f表示单精度浮点数
a = 2.2e-3f;
a = 3.1415926f;
printf("a = %f\r\n",a); 结果为3.141593 (7位有效数字)

2.5 字符串变量的定义和输出

    字符串是内存中一段连续的char空间,以’\0’(数字0)结尾;字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
    !字符串常量与字符常量的不同:
在这里插入图片描述
每个字符串的结尾,编译器会自动的添加一个结束标志位’\0’,即 “a” 包含两个字符’a’和’\0’

char a = 'a';              定义字符变量
char b[20] = "abcdefg";    定义一个字符数组变量,存储字符串
printf("string b -> %s\r\n",b);

2.6 键盘输入scanf()和常用占位符%d等

/* ----------------------------------------------------------------------------------
	C for:

	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
// #pragma warning(disable:4996) // 屏蔽提示,从而正常使用scanf函数
#define _CRT_SECURE_NO_WARNINGS  // 屏蔽提示,从而正常使用scanf函数
#include <stdio.h>   // 标准输入输出,其中有scanf和printf
#include <stdlib.h>  // 标准系统库,如system
// -----------------------------------   全局参数   ---------------------------------
// -----------------------------------     函数     ---------------------------------
// -----------------------------------     main     ---------------------------------
int main()
{
    	
	int weight;
	int price;
	scanf("%d %d", &weight, &price);
	printf("The weight is %d, the price is %d, the moneny is %d\r\n",weight,price,(weight*price));
//-----------------------------------------
	printf("%d", a);    -->  占位符%d 打印整数
	printf("%hd", a);   -->  打印短整型
	printf("%ld", a);   -->  打印长整形
	printf("%lld", a);  -->  打印长长整形
	printf("%f", a);    -->  打印单精度浮点型
	printf("%.2f", a);  -->  保留2位小数打印单精度浮点小数
	printf("%lf", a);   -->  打印双精度浮点小数
	printf("%c",a);     -->  打印字符
	printf("%s",a);     -->  打印字符串
	printf("%p",&a);    -->  查看a的地址

	return 0;
}
// -----------------------------------     end     ---------------------------------

2.7 ASCII表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3 进制转换

3.1 进制及其赋值

进制 表示
十进制 d 以正常数字1-9表示;如 123
八进制 o 以数字0开始,然后后面为数;如 0123
十六进制 hex 以0x开始,然后后面为数;如0x123
二进制 C语言中不能直接书写二进制数
/* ----------------------------------------------------------------------------------
	C for:

	anuthor:BinHeon https://blog.csdn.net/BinHeon
	date:   2020/09/14
	tips:
   ---------------------------------------------------------------------------------- */
// #pragma warning(disable:4996) // 屏蔽提示,从而正常使用scanf函数
#define _CRT_SECURE_NO_WARNINGS  // 屏蔽提示,从而正常使用scanf函数
#include <stdio.h>   // 标准输入输出,其中有scanf和printf
#include <stdlib.h>  // 标准系统库,如system
// -----------------------------------   全局参数   ---------------------------------
// -----------------------------------     函数     ---------------------------------
// -----------------------------------     main     ---------------------------------
int main()
{
    	
	int a = 123;
	printf("十进制数:%d\r\n",a);
	
	int b = 0123;
	printf("八进制数:%o\r\n",b);
	
	int c = 0x123;
	printf("十六进制数:%x\r\n",c);
}

3.2 二进制与十进制

    1、十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
    具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

在这里插入图片描述
    2、十进制小数转换为二进制采用"乘2取整,顺序排列"法。
    ①用2乘十进制小数,可以得到积,将积的整数部分取出
    ② 再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
    ③重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止

在这里插入图片描述

    3、二进制转十进制采用“权值法”。
在这里插入图片描述

3.3 二进制与八进制

    一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。
    八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)
在这里插入图片描述

3.4 二进制与十六进制

    十六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。
    十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)
在这里插入图片描述


4 内存数值存储方式

4.1 原码

    一个数的原码(原始的二进制码)有如下特点:
        ①最高位做为符号位,0表示正,为1表示负;
        ②其它数值部分就是数值本身绝对值的二进制数;
        ③负数的原码是在其绝对值的基础上,最高位变为1;
        ④原码不便于加减运算。

十进制数 原码
+15 0000 1111
-15 1000 1111

4.2 反码

    对于正数,反码与原码相同;对于负数,符号位不变,其它部分取反(1变0,0变1);反码也不便于加减运算。

十进制数 反码
+15 0000 1111
-15 (1000 1111)原码 -> (1111 0000)反码

4.3 补码

    补码特点:
        ①对于正数,原码、反码、补码相同;
        ②对于负数,其补码为它的反码加1;补码符号位不动,其他位求反,最后整个数加1,得到原码。

十进制数 反码
+15 0000 1111
-15 (1000 1111)原码 -> (1111 0000)反码 ->(1111 0001)补码

    在计算机系统中,数值一律用补码来存储,主要原因是:①统一了零的编码;②符号位可和其它位统一处理;③将减法运算转变为加法运算;且两个补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
    如:通过加法实现计算 9-6
原码:9-6=-15,结果不正确
在这里插入图片描述
补码:舍弃高位进位,9-6=3,结果正确

在这里插入图片描述



Day-3

1.数据类型

1.1 aa


2.数据类型

2.1 aa


3.数据类型

3.1 aa



Day-4

1.数据类型

1.1 aa


2.数据类型

2.1 aa


3.数据类型

3.1 aa



总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/BinHeon/article/details/109463018

智能推荐

Swift 包管理器 (SPM):管理 iOS 中的依赖关系_ios spm-程序员宅基地

文章浏览阅读845次,点赞29次,收藏7次。Swift 包管理器 (SPM):管理 iOS 中的依赖关系_ios spm

SCI论文润色真有必要吗?-程序员宅基地

文章浏览阅读381次,点赞10次,收藏7次。总的来说,sci论文润色虽然不会改变论文的学术内容和贡献,但它能够显著的提升论文的质量和可读性,从而增加论文被接受和引用的机会。在论文投稿前都是需要润色的,特别是英文论文投稿,一定得靠谱。但如果是一些小问题,比如语法语句错误,专业言论不恰当,那么你的文章会在投稿过程中外审评定完以后,也会给你返修意见和修改机会。如果是新作者,或者是对自己的语言能力不那么自信,那么是很有必要的。其他人的视角可能会发现你忽略的错误或不清晰的表达,同时也可以提供有关论文结构和逻辑的反馈意见。关于SCI论文润色的常见方法。

Prometheus监控数据格式的学习-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏9次。Prometheus 指标(metrics)的数据形式是一种简单的文本格式(容易通过 HTTP 协议被 Prometheus 服务器拉取)。每一行包含了一个指标的数据,通常包括指标名称、可选的一组标签以及指标的值。Prometheus 的指标数据可以有不同类型,如 Counter、Gauge、Histogram 和 Summary,它们的表示形式会有所不同。

数字图像处理(10): OpenCV 图像阈值化处理_binarization threshold-程序员宅基地

文章浏览阅读5.6k次,点赞26次,收藏43次。目录1 什么是阈值化-threshold()2 二进制阈值化3 反二进制阈值化4 截断阈值化5 反阈值化为06 阈值化为07 小结参考资料1 什么是阈值化-threshold()图像的二值化或阈值化 (Binarization)旨在提取图像中的目标物体,将背景以及噪声区分开来。通常会设定一个阈值,通过阈值将图像的像素划分为两类:大于阈值的..._binarization threshold

CSS flex布局的使用之逆战班系列_nzjustify无效-程序员宅基地

文章浏览阅读102次。一、 什么是flex布局Flex是Flexible Box的缩写,也称“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。注:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。二、 基本概念采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为F..._nzjustify无效

SpringBoot 疫苗接种管理系统--83448 (免费领源码、附论文)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案-程序员宅基地

文章浏览阅读70次。本次系统设计中,以用户的实际操作感作为整体开发的出发点,结合Java开发语言对软件开发原理,本次软件的开发以实际运用作为出发点,以改善疫苗接种管理效率为目的,使用SpingBoot框架技术整体开发源程序,最终实现一个改善疫苗接种管理系统。在整体的开发过程中,首先了解用户的需要,分析现状及问题点,参考成熟的类似系统,不断改进,最终实现系统的设计开发。

随便推点

使用安卓模拟器时提示关闭hyper-v_hyperv影响 模拟器-程序员宅基地

文章浏览阅读1.6w次。本电脑是宏碁传奇X,cpu是r7 5800u,显卡rtx3050;使用了雷电、mumu两款安卓模拟器,雷电启动报错g_bGuestPowerOff fastpipeapi.cpp:1161,使用了网上的所有方案都不行,包括开启VT(amd开启SVM),命令关闭hyper-v服务等;尝试mumu模拟器,安装时支持vt项检测不通过,后来发现mumu模拟器在amd的cpu上只支持32位版,换装32位版检测通过,但是只要打开模拟器就提示需要关闭hyper-v,我已经确认关闭后,启动依旧这样提示,查找了网上很_hyperv影响 模拟器

【大厂秘籍】系列 - Mysql索引详解-程序员宅基地

文章浏览阅读564次。MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。● 索引是物理数据页存储,在数据文件中(InnoDB,ibd文件),利用数据页(page)存储。● 索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。

CSS实现当鼠标停留在一个元素上时,使得两个元素的样式发生改变_css鼠标悬浮修改其他元素样式-程序员宅基地

文章浏览阅读825次。使用兄弟选择器实现同时改变两个元素的样式_css鼠标悬浮修改其他元素样式

文献学习-40-基于可迁移性引导的多源模型自适应医学图像分割-程序员宅基地

文章浏览阅读4.8k次,点赞32次,收藏43次。香港中文大学袁奕萱教授团队提出了一种名为多源模型自适应 (MSMA) 的新型无监督域适应方法。MSMA 旨在仅利用预训练的源模型(而非源数据)将知识迁移到未标记的目标域,从而实现对目标域的有效分割。

(4)FPGA开发工具介绍(第1天)-程序员宅基地

文章浏览阅读8.8k次。(4)FPGA开发工具介绍(第1天)1 文章目录1)文章目录2)FPGA初级课程介绍3)FPGA初级课程架构4)FPGA开发工具介绍(第1天)5)技术交流6)参考资料2 FPGA初级课程介绍1)FPGA初级就业课程共100篇文章,目的是为了让想学FPGA的小伙伴快速入门。2)FPGA初级就业课程包括FPGA简介、Verilog HDL基本语法、Verilog HDL 入门实例、FPGA入门实例、Xilinx FPGA IP core设计、Xilinx FPGA原语与U_fpga开发工具

js中的定时器如何使用_js定时器用法-程序员宅基地

文章浏览阅读1.4k次。JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout、setInterval、setImmediate、requestAnimationFrame。首先,我们先来了解一下什么是定时器:JS提供了一些原生方法来实现延时去执行某一段代码下面来简单介绍一下setTimeout() :在指定的毫秒数后调用函数或计算表达式。setTimeout(code,millisec,lang)参数 描述code 必需。要调用的函数后要执行的 JavaScript 代码串。_js定时器用法

推荐文章

热门文章

相关标签