当前位置: 首页 > news >正文

【C语言的奥秘9】数据类型总结

 一、数据类型的介绍

数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。

  • 基本数据类型:基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。

char //字符数据类型——1字节
short //短整型——2字节
int //整形——4字节
long //长整型——4/8字节
long long //更长的整形——8字节
float //单精度浮点数——4字节
double //双精度浮点数——8字节
  • 构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。在 C 语言中,构造类型有以下几种:

数组类型
结构体类型
共用体(联合)类型
  • 指针类型:指针是一种特殊又具有重要作用的数据类型。他的值用来表示某个变量在内存储器中的地址。

  • 空类型:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明。通常应用于函数的返回类型、函数的参数、指针类型。

//情况一
void test(...)//返回类型为空类型
{
//函数体
}
//情况二
void test(void)//返回类型为空类型
{
//函数体
}
//情况三
void* p;//无具体类型的

二、整型在内存中的存储

1、整型常量的表示方法

整型常量就是整常数,在 C语言中,使用的整常数有八进制、十六进制和十进制三种。

1)十进制整常数:十进制整常数没有前缀。其数码为 0~9。

前缀在程序中是一个非常重要的标志,在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果的不正确。

2)八进制整常数:八进制整常数必须以0开头,即以0 作为八进制数的前级。数码取值为 0~7。八进制数通常是无符号数。

以下各数是合法的八进制数:
015(十进制为 13)0101(十进制为 65)、0177777(十进制为 65535);
以下各数不是合法的八进制数:
256(无前缀 0)、03A2(包含了非八进制数码)、-0127(出现了负号)。

3)十六进制整常数:十六进制整常数的前缀为 0X 或 0x。其数码取值为 0-9,A~F 或a~f。

以下各数是合法的十六进制整常数:
0X2A(十进制为 42)、0XA0(进制为 160)0XFFFF(十进制为 65535)
以下各数不是合法的十六进制整常数:
5A(无前缀 0X)、0X3H(含有非十六进制数码)。

4)还有一些数我们发现是有后缀的,也是对数据的描述

u和 U························表示该整型常量为无符号类型
l 和 L························· 表示该整型常量为 long 型。
例如,3517U为unsigned 型,127569L为 long 型

2、整型的定义类型

  • char

unsigned char

signed char

  • short

unsigned short [int]

signed short [int]

  • int

unsigned int

signed int

  • long

unsigned long [int]

signed long [int]

3、整型的存储

数据存放内存中其实存放的是补码。计算机中的整数有三种2进制表示方法,即原码、反码和补码。三种表示方法均有符号位数值位两部分,符号位都是用0表示“正”,用1表示“负”

正数的原、反、补码都相同。

负整数的三种表示方法各不相同。

原码
直接将数值按照正负数的形式翻译成二进制就可以得到原码。
反码
将原码的符号位不变,其他位依次按位取反就可以得到反码。
补码
反码+1就得到补码。

4、整数的显示

printf 函数既能输出八进制数又能输出十六进制数。输出八进制数使用 %o,输入十六进制数使用%x或%X,无符号型为%u。

要注意的是输出十六进制的时候,%x的话用小写字母a~f来表示,%X的话用大写字母A~F来表示。

😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉

这里给大家补充一个小点:


int main()
{unsigned int num = -10;printf("%d\n", num);printf("%u\n", num);return 0;
}

可以发现输出结果如下:

这是因为,所有的数进入计算机都是以补码的形式存储,输出的时候却是按照当前的给出的输出格式来输出的,-10的原、反、补三种情况如下:

原:10000000000000000000000000001010
反:11111111111111111111111111110101
补:11111111111111111111111111110110

%d输出的时候是计算机会把-10按照整型的输出出来,%u输出的时候计算机会把-10按照无符号输出出来。这个时候就有人来问了,那unsigned的作用是什么呢?笔者的理解是这样的,当咱们需要一个无符号数的时候,咱们就定义一个unsigned类型的变量,当是其他类型的时候就定义其他类型,因为unsigned它是给程序员看的,告诉你这个变量给赋值的时候一定是一个无符号数。否则就会出现上面定义的是无符号数却赋值给的是-10这样的情况。

这个时候就会有很多同学说,那unsigned有什么用,起初大家都在想,这个标识符表示该变量是无符号的,但是在这个题看来并不是这样,他虽然定义了一个无符号变量num,但是输出该咋样还是咋样,可以说是一个无意义的标识符。哈哈,那要是这样想的话你就大错特错了,这里对num进行了限定,则num以后一旦遇到就是一个无符号的变量,他表示的值进行运算都是无符号的进行运算。


#include<stdio.h>
int main()
{unsigned int i;for (i = 9; i >= 0; i-=10000){printf("%d\n", i);}
}

这里会发现运行结果是一个无限循环的一直输出,但是输出的结果是有正有负的值。综上可以得出这样的结论,当变量被unsiged的变量类型定义时,该变量的运算过程都是一个无符号的值进行运算,但是输出该变量的时候,由于printf函数输出只与输出格式有关,是完全按照前面的限定格式输出与变量是不是无符号类型是没有关系的。

5、隐式类型转换

C语言的整型算术运算总是默认是整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。

表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度
一般就是int的字节长度,同时也是CPU的通用寄存器的长度。
因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长
度。
通用CPU(general-purpose CPU)是难以直接实现两个8比特字节直接相加运算(虽然机器指令
中可能有这种字节相加指令)。所以,表达式中各种长度可能小于int长度的整型值,都必须先转
换为int或unsigned int,然后才能送入CPU去执行运算。

例子


char a,b,c;
a = b + c;

解释

b和c的值被提升为普通整型,然后再执行加法运算;加法运算完成之后,结果将被截断,然后再存储于a中。

那么是如何进行整型提升呢?

//负数的整形提升
char c1 = -1;
变量c1的二进制位(补码)中只有8个比特位:
1111111
因为 char 为有符号的 char
所以整形提升的时候,高位补充符号位,即为1
提升之后的结果是:
11111111111111111111111111111111

//正数的整形提升
char c2 = 1;
变量c2的二进制位(补码)中只有8个比特位:
00000001
因为 char 为有符号的 char
所以整形提升的时候,高位补充符号位,即为0
提升之后的结果是:
00000000000000000000000000000001

//无符号整形提升,高位补0,与正数的方法一致

三、浮点类型在内存中的存储

1、实型常量

实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进

制。它有二种形式:十进制小数形式和指数形式。

标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如 356f 和 356.是等价的。

2、实型变量

浮点数家族包括: float、double、long double 类型。

通过这些类型可以定义不同精度的浮点型变量。

3、浮点数存储

根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:
(-1)^S * M * 2^E
(-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。
M表示有效数字,大于等于1,小于2。
2^E表示指数位。

IEEE 754规定:

对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。

对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。

S的存储

存储的浮点数是正数,符号位即为0,S存储0,反之存储负数S位即为1。

M的存储

前面说过, 1≤M<2 ,也就是说,M可以写成 1.xxxxxx 的形式,其中xxxxxx表示小数部分。IEEE 754规定,在计算机内部保存M时,默认这个数的第一位总是1,因此可以被舍去,只保存后面的xxxxxx部分。比如保存1.01的时候,只保存01,等到读取的时候,再把第一位的1加上去

E的存储

这里的E是一个无符号整数(unsigned int),所以如果E为8位,它的取值范围为0~255,如果E为11位,它的取值范围为0~2047。但是,科学计数法中的E是可以出现负数的,所以IEEE 754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;对于11位的E,这个中间数是1023。

指数E从内存中取出还可以再分成三种情况:

E不全为0或不全为1

指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1
举例
0.5(1/2)的二进制形式为0.1,由于规定正数部分必须为1,即将小数点右移1位,则1.0*2^(-1),其阶码为-1+127=126,表示为01111110,而尾数1.0去掉整数部分为0,补齐0到23位00000000000000000000000,则其二进制表示形式为:
0 01111110 00000000000000000000000

E全为0

此时浮点数的指数E等于1-127(或者1-1023)即为真实值,有效数字M不再加上第一位的1,而是还原为0.xxxxxx的小数。这样做是为了表示±0,以及接近于0的很小的数字。

E全为1

这时,如果有效数字M全为0,表示±无穷大(正负取决于符号位s);

四、算数转换(类型转换)

1、自动类型转换

自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:

😉为保证精度的不降低

①水平方向的转换:char和short型自动转换成int型,剩下三种与之相同.

②垂直方向的转换:经过水平方向的转换,如果参加运算的数据类型仍然不相同,将会进行垂直方向上的 自动转换,将数据类型转换成其中数据类型最高的类型

😉赋值运算的类型转换

赋值运算时,将赋值号右侧表达式的类型自动转换成左侧的变量的类型,所以当右侧表达式类型比左侧表达式类型级别高,运算精度会降低.

🙈🙈如下例子🙈🙈


int main()
{float PI=3.14159;int s,r=5;s=r*r*PI;printf("s=%d\n",s);return 0;
}

本例程序中,PI 为实型;s,r 为整型。在执行 s=r*r*PI 语句时,r 和 PI 都转换成double型计算,结果也为 double 型。但由于 s 为整型,故赋值结果仍为整型,舍去了小数部分。

2、强制类型转换

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符) (表达式)

其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

例:

(float) a 把 a 转换为实型
(int)(x+y) 把 x+y 的结果转换为整型

3、注意

无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。


今天的分享就到这啦😉 

如果我的文章对您有帮助,

请 “点赞” “收藏” “关注” 一键三连哦!

想了解更多知识请前往重生之我在VS写bug

如果以上内容有什么问题,欢迎留言,大家一起学习,共同进步。

相关文章:

【C语言的奥秘9】数据类型总结

一、数据类型的介绍 数据类型是按被定义变量的性质&#xff0c;表示形式&#xff0c;占据存储空间的多少&#xff0c;构造特点来划分的。在C语言中&#xff0c;数据类型可分为:基本数据类型&#xff0c;构造数据类型&#xff0c;指针类型&#xff0c;空类型四大类。 基本数据类…...

EasyExcel注解使用

上接《Springboot下导入导出excel》&#xff0c;本篇详细介绍 EasyExcel 注解使用。 1. ExcelProperty value&#xff1a;指定写入的列头&#xff0c;如果不指定则使用成员变量的名字作为列头&#xff1b;如果要设置复杂的头&#xff0c;可以为value指定多个值order&#xff…...

什么是多模态和模态

文章目录 前言一、定义1. 模态 (Modal)2. 非模态 (Non-modal) 二、GUI中1. 模态&#xff08;Modal&#xff09;对话框2. 非模态&#xff08;Modeless&#xff09;对话框 三、模态 vs 非模态 的对比四、何时使用模态和非模态对话框&#xff1f;五、Qt 中 exec() 与 show() 的区别…...

【系统架构设计师】真题论文: 论NoSQL数据库技术及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2018年 试题4)解题思路论文素材参考真题题目(2018年 试题4) 随着互联网 web2.0 网站的兴起,传统关系数据库在应对 web2.0 网站,特别是超大规模和高并发的 web2.0 纯动态 SNS 网站上已经显得力不从心…...

TCP/IP 协议图--计算机网络体系结构分层

计算机网络体系结构分层 计算机网络体系结构分层 不难看出&#xff0c;TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”&#xff0c;而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”...

【Android】Intent类详解

目录 引言 一、Intent的定义 二、Intent的用途 三、Intent的七大属性 四、Intent的种类 4.1 显式Intent 4.2 隐式Intent 五、代码示例 5.1 activity_intent.xml 5.2 IntentActivity.java 5.3 AndroidManifest.xml 5.4 实现效果 结语 引言 Intent在Android开发…...

【LeetCode刷题之路】64.最小路径和 (动态规划入门)

LeetCode刷题记录 &#x1f310; 我的博客主页&#xff1a;iiiiiankor&#x1f3af; 如果你觉得我的内容对你有帮助&#xff0c;不妨点个赞&#x1f44d;、留个评论✍&#xff0c;或者收藏⭐&#xff0c;让我们一起进步&#xff01;&#x1f4dd; 专栏系列&#xff1a;LeetCode…...

Facebook:筑牢隐私安全堡垒,守护社交净土

在全球社交媒体平台中&#xff0c;Facebook一直是风靡全球的佼佼者。然而&#xff0c;随着数字化信息的迅速膨胀&#xff0c;用户隐私保护的重要性日益凸显。面对用户对数据安全性的高度重视&#xff0c;Facebook致力于通过一系列措施来确保隐私保护&#xff0c;守护每位用户的…...

MongoDB 索引类型详解

MongoDB 索引类型详解 在 MongoDB 中&#xff0c;索引是提高查询效率、优化数据库性能的重要手段。MongoDB 支持多种类型的索引&#xff0c;每种索引类型适用于不同的查询需求和场景。本文将详细介绍 MongoDB 中几种常见的索引类型、示例及其限制。 1. 单字段索引&#xff08…...

国家信息中心单志广:智慧城市转型中的数据要素价值释放

今日&#xff0c;由中国电信集团主办的2024数字科技生态大会数据要素合作论坛在广州市举办。国家发改委国家信息中心信息化和产业发展部主任单志广在论坛发展主旨演讲&#xff1a;智慧城市转型中的数据要素价值释放&#xff0c;主要包括发展新形势、数据新要素、数据新产权、数…...

底层逻辑之:欧拉-拉格朗日方程(Euler-Lagrange equations)变分法(Calculus of Variations)的核心思想

0前言&#xff1a; 0.1 17世纪的泛函&#xff08;Functional&#xff09;分析与变分法&#xff08;Calculus of Variations&#xff09; 在17世纪&#xff0c;数学家们开始遇到一些需要处理函数集合的问题&#xff0c;这些问题涉及到函数的极值、曲线的长度、曲面的面积等。这…...

2024-12-03OpenCV图片处理基础

OpenCV图片处理基础 OpenCV的视频教学&#xff1a;https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV摄像头读取 OpenCV使用摄像头读取图片帧&#xff0c;点击S保存当前帧到指定文件夹&#xff0c;点击Q关闭窗口&#xff0c;点击其他按钮打印按钮的值 要实现这个功能&…...

【汇编语言】标志寄存器(二) —— 标志位驱动的计算:ADC、SBB 和 CMP 的巧妙应用

前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码效率&#xff0c;尤其在嵌入式系统和性能优…...

Java刷题训练第一期

个人主页&#xff1a;手握风云 专栏&#xff1a;Java刷题训练营 1. 字符转ASCII码 问题描述&#xff1a;BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi&#xff0c;输入一个字符&#xff0c;输出该字符相应的ASCII码。 输入描述…...

【leetcode100】矩阵置零

1、题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用原地算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 2、初始思路 2…...

【MySQL 进阶之路】SQL 优化

6.SQL 性能分析笔记 在现代数据库的高并发环境下&#xff0c;SQL 查询优化成为提升系统性能和响应速度的关键。本文将总结常见的 SQL 优化策略&#xff0c;包括插入优化、主键设计、排序优化、GROUP BY 优化等&#xff0c;帮助你在面对大规模数据时&#xff0c;做到高效查询和…...

本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画

文章目录 前言1.关于Paint Board2.本地部署paint-board3.使用Paint Board4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Paint Board公网地址 前言 大家好&#xff0c;是不是每次想要在电脑上画画时&#xff0c;都被那些笨重的专业绘图软件搞得头大如斗呢&#xff1f;…...

位图(bitmap)和布隆过滤器(bloom_filter)

1.位图-Bitmap 1.1问题引入 :给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff1f; 40亿个无符号整数大约16G的大小&#xff0c;用map或者set显然是无法支持海量数据的存储。那么我们能否不存储数…...

如何使用JDBC向数据库中插入日期数据???

在学习JDBC 的过程中很多小明有疑问在IDEA编辑器是如何插入一个日期类型的数据的&#xff0c;此篇一些方法希望可以帮助到你。 示例&#xff1a; import java.text.ParseException; import java.text.SimpleDateFormat; import java.sql.Date; import java.util.Scanner;publi…...

电子系统设计实验4 信号发生电路设计实验

一、实验目的 1. 掌握正弦信号发生器的设计方法。 2. 掌握方波发生器的设计方法。 二、实验内容及结果 1. 实验内容 设计一用于RFID读卡器测试的幅移键控发生器&#xff08;ASK&#xff09;&#xff0c;其结构如图4-1所示。正弦振荡器输出频率为150kHz&#xff0c;幅度为3V…...

【Docker】Linux与Windows系统安装Docker+Docker上简单安装MySQL

一、Windows安装Docker 由于我在许多平台搜索Windows下安装Docker的方法&#xff0c;都提到了Win10家庭版无法直接安装Docker。个人电脑就是Win10家庭版&#xff0c;本着实践出真知的想法&#xff0c;个人在本机Win10家庭版实验结果为需要采用下述传统手动安装的办法&#xff…...

linux更新镜像源

镜像源地址 1 阿里云 http://mirrors.aliyun.com/ubuntu/ 2 网易源 http://mirrors.163.com/ubuntu/ 3 浙大源 http://mirrors.zju.edu.cn/ubuntu 4 中科大源 http://mirrors.ustc.edu.cn/ubuntu/ 5 清华源 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ 更新镜像源 此处…...

HarmonyOS 5.0应用开发——UIAbility生命周期

【高心星出品】 文章目录 UIAbility组件创建AbilityUIAbility的生命周期Create状态WindowStageCreate状态Foreground和Background状态WindowStageWillDestroy状态Destroy状态 UIAbility组件 UIAbility组件是一种包含UI的应用组件&#xff0c;主要用于和用户交互。 UIAbility组…...

【Linux】C语言实现简易的Linux shell命令行解释器

我们要实现自己的简易的shel&#xff0c;先了解一下shell运行原理。 1. shell运行原理 shell从用户读入字符串"ls"。shell建立一个子进程&#xff0c;在子进程中运行ls程序并等待进程结束。 然后shell读取新的一行输入&#xff0c;建立一个新的子进程&#xff0c;在…...

构建个人大模型问答助手(基于Streamlit +gpt-4o/o1-mini):全面解析与实现

在当今人工智能迅猛发展的时代&#xff0c;构建一个个人化的大模型问答助手不仅能够提高工作效率&#xff0c;还能为日常生活带来便利。本篇博客将详细解析如何使用Python和Streamlit框架&#xff0c;结合OpenAI的API&#xff0c;搭建一个类似于ChatGPT的问答系统。我们将分步骤…...

10.请求拦截和响应拦截

文章目录 前言前景回顾拦截器应用请求拦截器响应拦截器测试响应拦截器原理 总结 前言 优秀的设计总是少不了丰富的扩展点, 比如spring可以自动装配, aop扩展, web模块也有拦截器, 甚至对servlet的过滤器都有封装; 再比如netty、doubbo等等都支持在数据流入流出都允许用户自定义…...

github使用SSH进行克隆仓库

SSH 密钥拉取git 查询密钥是否存在 s -al ~/.ssh这个文件夹下 known_hosts 就是存在的密钥文件 创建密钥文件 ssh-keygen -t rsa -b 4096 -C "testtt.com"-t rsa 是 rsa 算法加密 -b 是指定密钥的长度&#xff08;以位为单位&#xff09;。 -C 是用于给密钥添加注…...

如何成长为一名工程技术经理

https://medium.com/srivatsan-sridharan/how-to-grow-as-an-engineering-manager-687cad0bcac7 作为一名工程技术经理&#xff0c;你可能已经积累了丰富的团队管理经验&#xff0c;并展示了出色的项目管理、优先级管理和员工指导能力。然而&#xff0c;尽管如此&#xff0c;你…...

前端热门面试题目(四五六七)

1. 使用 import 时&#xff0c;Webpack 如何处理 node_modules 中的依赖&#xff1f; 依赖解析&#xff1a; Webpack 遇到 import 时&#xff0c;利用 resolve 配置查找依赖。如果是第三方依赖&#xff08;node_modules&#xff09;&#xff0c;Webpack 会优先查找其主入口&…...

三、使用 Maven:命令行环境

文章目录 1. 第一节 实验一&#xff1a;根据坐标创建 Maven 工程1.1 Maven 核心概念&#xff1a;坐标1.2 实验操作1.3 Maven核心概念&#xff1a;POM1.4 Maven核心概念&#xff1a;约定的目录结构 2. 实验二&#xff1a;在 Maven 工程中编写代码2.1 主体程序2.2 测试程序 3. 执…...

深度学习在网络管理中的应用:智能化的新时代

网络管理在现代信息技术中占据着举足轻重的地位。随着网络规模的扩大和复杂性的增加&#xff0c;传统的网络管理手段已经无法满足日益增长的需求。深度学习作为人工智能的一个重要分支&#xff0c;通过其强大的数据处理和模式识别能力&#xff0c;为网络管理带来了新的契机。本…...

微信小程序日期格式化报错: iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd“、“yyyy/MM/dd HH:mm:ss“、“yyyy-

微信小程序日期格式化报错 报错内容解决办法 报错内容 at formatDate (http://127.0.0.1:10118/appservice-hotreload/pages/index/index.js?1;:103:18) new Date(“2024-11-27 15:05:23”) 在部分 iOS 下无法正常使用&#xff0c;iOS 只支持 “yyyy/MM/dd”、“yyyy/MM/dd H…...

第K大数求解方案

思想&#xff1a;利用快速排序的思想&#xff0c;从数组S中随机找出一个元素X&#xff0c;把数组分为两部分Sa和Sb。Sa中的元素大于等于X&#xff0c;Sb中元素小于X。这时有两种情况&#xff1a; 1. Sa中元素的个数小于k&#xff0c;则Sb中的第k-|Sa|个元素即为第k大数&#xf…...

【AI系统】MobileFormer

MobileFormer 在本文中&#xff0c;将介绍一种新的网络-MobileFormer&#xff0c;它实现了 Transformer 全局特征与 CNN 局部特征的融合&#xff0c;在较低的成本内&#xff0c;创造一个高效的网络。通过本节&#xff0c;让大家去了解如何将 CNN 与 Transformer 更好的结合起来…...

《重生之我学VTK》-- 基本介绍与相关概念

目录 简介 可视化模型 示例&#xff08;圆锥体&#xff09; VTK官方用户手册&#xff08;中文C版&#xff09;附末尾&#xff0c;有需要的直接划到末尾 简介 VTK&#xff08;Visualization Toolkit&#xff09;是一个开源的、跨平台的软件系统&#xff0c;主要用于三维计算机图…...

HTML笔记()蜘蛛纸牌之卡牌拖拽

效果 代码 <!DOCTYPE html> <html><head><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #2b2b2b;position: relative;}.card{/*设置卡牌的外观*/width: 150px;height: 200px;background-…...

记一次跑前端老项目的问题

记一次跑前端老项目的问题 一、前言二、过程1、下载依赖2、启动项目3、打包 一、前言 在一次跑前端老项目的时候&#xff0c;遇到了一些坑&#xff0c;这里记录一下。 二、过程 1、下载依赖 使用 npm install下载很久&#xff0c;然后给我报了个错 core-js2.6.12: core-js…...

041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较

矩阵平方和的计算 矩阵平方和的定义 矩阵平方和的定义是对矩阵中的每一个元素进行平方&#xff0c;然后求和。 对于一个矩阵 A A A&#xff0c;其平方和定义为&#xff1a; sum ∑ i 1 m ∑ j 1 n A ( i , j ) 2 \text{sum} \sum_{i1}^{m}\sum_{j1}^{n} A(i,j)^2 sumi1∑…...

vue3中 axios 发送请求 刷新token 封装axios

service.js 页面 import axios from axios // 创建axios实例 const instance axios.create({baseURL: http://gcm-test.jhzhkj.cn:8600/h5card/,timeout: 5000, // 请求超时时间headers: {get: {Content-Type: application/x-www-form-urlencoded},post: {Content-Type: appl…...

vue+mars3d叠加展示arcgis动态服务

数据格式&#xff1a;使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…...

PostgreSQL 中进行数据导入和导出

在数据库管理中&#xff0c;数据的导入和导出是非常常见的操作。特别是在 PostgreSQL 中&#xff0c;提供了多种工具和方法来实现数据的有效管理。无论是备份数据&#xff0c;还是将数据迁移到其他数据库&#xff0c;或是进行数据分析&#xff0c;掌握数据导入和导出的技巧都是…...

Stable Audio Open模型部署教程:用AI打造独家节拍,让声音焕发新活力!

Stable Audio Open 是一个开源的文本到音频模型&#xff0c;允许用户从简单的文本提示中生成长达 47 秒的高质量音频数据。该模型非常适合创建鼓点、乐器即兴演奏、环境声音、拟音录音和其他用于音乐制作和声音设计的音频样本。用户还可以根据他们的自定义音频数据微调模型&…...

python更新程序并部署服务器服务

本地客户端程序 import json import hashlib import os import shutil import requests from pathlib import Pathclass AutoUpdater:def __init__(self, config_path"http://【XXXIP地址】/update_config"):self.config_path config_pathself.config Nonewith op…...

Nmap 扫描技巧:自定义端口、扫描速度与并行化设置

Nmap 扫描技巧&#xff1a;自定义端口、扫描速度与并行化设置 在进行网络安全扫描时&#xff0c;Nmap 是一个非常强大的工具。除了默认扫描 1000 个端口外&#xff0c;你还可以根据需要自定义扫描的端口、调整扫描速度以及优化扫描并行化。今天&#xff0c;我们就来介绍如何通…...

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;五&#xff09;—— CSS盒子模型 前言一、盒子模型的组成margin&#xff08;外边距&#xff09;&#xff1a;border&#xff08;边框&#xff09;&#xff1a;padding&#xff08;内边距&#xff09;&#xff1a;conten…...

Linux命令行下载工具

1. curl 1.1. 介绍 curl是一个功能强大的命令行工具&#xff0c;用于在各种网络协议下传输数据。它支持多种协议&#xff0c;包括但不限于 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SMTP、POP3、IMAP 等&#xff0c;这使得它在网络数据交互场景中有广泛的应用。curl可以模拟浏览器…...

Navicat 连接 SQL Server 详尽指南

Navicat 是一款功能强大的数据库管理工具&#xff0c;它提供了直观的图形界面&#xff0c;使用户能够轻松地管理和操作各种类型的数据库&#xff0c;包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库&#xff0c;包括安装设置、连接配置、常见问题排…...

黑马JavaWeb-day06、07、08(SQL部分) _

文章目录 MYSQL概述数据模型SQL简介SQL分类 DDL数据库操作表操作 DML增&#xff08;INSERT&#xff09;改&#xff08;UPDATE&#xff09;删&#xff08;DELETE&#xff09; DQL基本查询条件查询&#xff08;where&#xff09;分组查询&#xff08;group by&#xff09;排序查询…...

Redis(1)

Redis是一个在内存中存储数据的中间件。 1.在内存中存储数据。 通过数据结构来存储&#xff0c;mysql通过表的方式存储数据&#xff0c;是关系型数据库&#xff0c;redis通过键值对存储&#xff0c;key的类型是string&#xff0c;value的类型是非关系型数据库。 2.可编程的 …...

工具类-列表请求工具 useList

useList 用于列表请求的基于 vue 3 的 hooks&#xff0c;接收请求函数、请求参数等数据&#xff0c;自动生成请求请求函数&#xff0c;分页信息等 本文有涉及到 http 请求工具和接口返回格式的内容&#xff1a; http 工具&#xff1a;一个基于 axios 封装的请求工具Response…...