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

数据的表示和运算

目录

一.各进制间的相互转换

1.各进制转化为10进制

2.二进制和八进制,十六进制之间地相互转化

3.十进制转换为其他进制

二.BCD码(Binary-Coded Decimal,用二进制编码的十进制)

1.8421码

2.余3码

3.2421码

三.无符号整数

1.无符号整数在计算机内部的表示

2.无符号整数的加法/减法运算

四.带符号整数

1.带符号整数在计算机内部的表示

•原码

•反码

•补码

补码的加法运算:

补码的减法运算:

•原码,反码和补码的特性对比

•移码

五.定点小数

1.定点小数的原码表示

2.定点小数的反码/补码表示

3.定点小数的加/减运算

4.定点小数中的原码,反码和补码

5.定点小数的位置扩展


首先需要知道以下几个概念:

位权:每一位所占权重。例如下图,K0的权重是10^0

基数:每个数码位所用到的不同符号的个数,r进制的基数为r。例如10进制数的基数就是10(十进制使用的符号为0~9),二进制数的基数就是2(0~1)

计算机中能够处理的数是二进制数,原因如下:

① 只需要使用有两个稳定状态的物理器件就可以表示二进制0或1。

② 0,1刚好对应对应逻辑值假,真。方便实现逻辑运算。

③ 可很方便地使用逻辑门电路实现算术运算。

一.各进制间的相互转换

1.各进制转化为10进制

转换规则如下:

例如:

下面表格建议多熟悉熟悉,看到2^n就需要知道是多少

2.二进制和八进制,十六进制之间地相互转化

① 二进制转换为八进制:每3位为一组,每组转换为对应的八进制符号

:从小数点开始,从前往后/从后往前每3位划分,如果不满三位就补0:

② 二进制转换为十六进制:每4位为一组,每组转换为对应的十六进制符号

③ 八进制转换为二进制:每位八进制对应3位二进制

④ 十六进制转换为二进制:每位十六进制对应4位二进制

(1100 0011)_{2}表示2进制数,1100 0011B也表示2进制数。

其余进制也有其他表示方法:

3.十进制转换为其他进制

① 十进制转换为二进制

对于整数部分,将十进制数,不断除以基数r,直到商为0为止。

对于小数部分,运算规则如下:小数部分*基数r得到的乘积结果的整数部分,对应K_{-1}的值,将剩余的小数部分继续乘基数,得到K_{-2}的值,依次类推:

具体以0.3为例,可以看到10进制表示的0.3没办法用2进制数精确的表示:

补充:可以使用更加快捷的方法---拼凑法

例如,对于十进制数260.75:

整数部分:260=256+4=2^8+2^2

小数部分:0.75=0.25+0.5=2^-2+2^-1

总结

① 整数部分要用除基取余法,小数部分要用乘积取整法。

② 任何二进制小数都能用十进制表示。

十进制的小数不一定能通过二进制精确表示。

② 十进制转换为八进制/十六进制

当我们熟悉了上面快捷的方法,完全可以先将十进制转化为二进制,再将二进制转换为十六进制,例如下图:260.75转换为二进制为100000100.11

将他转换为8进制:

将他转换为16进制:

二.BCD码(Binary-Coded Decimal,用二进制编码的十进制)

我们可以用4bit的信息,表示1个十进制位,因为4个2进制位可以表示2^4=16种状态,而这16种状态就足够表示10进制中的0~9(10种状态)了。其余的6种状态是冗余的。

1.8421码

如下图所示,4种状态分别表示10进制的8,4,2,1。

如果表示5:4+1=5,所以8421码为0101。

依次类推,就可以得到0~9与8421码的映射关系:

十进制转换为8421码:

手算方法:先用十进制得到结果,再将结果转换为对应的8421码。

计算机中使用的方法:

① 计算机会把加数和被加数1000,0101送到算术逻辑单元(ALU),算术逻辑单元进行加法运算后,得到结果:1101,将二进制转化为10进制,得13。

可以观察到,8421码中合法的编码区间为0000~1001,1010~1111没有定义,1100已经超出合法范围,为了使运算结果满足8421码的定义:

当运算得到的结果落在了10~18:9+9(1010~10010),也就是不合法的范围,可以在运算结果的基础上+6,使得结果向高位进一,如下图所示,高4位表示1,低4位表示3(0011),就可以表示十进制数13。

同理,9(1001)+9(1001)=18(10010),超出了8421码能够表示的范围,+6修正:

得到:1   1000,1对应的8421码为1,1000对应的8421码为8,合起来结果也为18。

2.余3码

4个二进制数对应16种状态,将16种状态的其中10种分别映射到0~9这几个数字。像8421码,就是将10种状态映射到0000~1001:

如果换一种映射方式,肯定会得到不一样的结果,例如余3码的映射规则就是:8421码的基础上加3:8321码+0011B

在8421码中,每个二进制位都有固定的权值(8,4,2,1),但在余3码中,每个二进制位并没有固定的权值,所以8421码被称为有权码,而余3码被称为无权码。

3.2421码

2421码也是一种有权码,从高到低,每一位对应的权值为2,4,2,1。

2421码对应的映射关系如下:

注意:

2421码中0~4对应编码的第1位都是0,而5~9对应编码的第1位都是1。这是为了统一2421码的编码策略。例如,5可以表示为0101,1011,为了避免歧义的发生,2421码规定5~9首位必须为1。

三.无符号整数

无符号整数,即“自然数”,0,1,2,3.....,在C语言中,只要用“unsigned”就可以定义无符号整数:

1.无符号整数在计算机内部的表示

计算机内的机器字长限制了每次可以进行运算的bit位,也限制了通用寄存器的长度。例如,某计算机机器字长为8位,那么他最多能同时进行8位运算(现在个人计算机的机器字长通常是64位或32位):

通用寄存器只能存8位2进制数:

对于无符号整数0,存入到寄存器需要扩充为8位:

依次类推,无符号整数256用2进制表示为1 0000 0000 ,超出了寄存器能存储的二进制数的长度,所以寄存器只能保存低8位。

总结:

① 全部二进制位都是数值位,没有符号位,第 i 位的位权是2^{i-1}

② n bit 无符号整数表示范围 0~2^{n}-1,超出则溢出,意味着该计算机无法一次处理这么多③ 可以表示的最小的数 全0,可以表示的最大的数 全1。

2.无符号整数的加法/减法运算

无符号整数的加法:从最低位开始,按位相加,并往更高位进位。

无符号整数的减法:

① “被减数”不变,“减数”全部位 按位取反、末位+1减法变加法
② 从最低位开始,按位相加,并往更高位进位

也就是要把减法操作化作等价的加法操作,原因在于,加法电路造价便宜,减法电路造价昂贵。

例如,对于99-9:

计算机内部进行的操作如下:

“减数”全部位 按位取反,末位+1。

将“A”与“变形得来的B”进行加法操作。

只保留低8位,但是不影响计算结果,0101 1010转化为10进制数为90

四.带符号整数

数学中的带符号整数,就是“整数”,-2,-1,0,1,2,3,4,在C语言中表示为:

以机器字长8bit为例:

1.带符号整数在计算机内部的表示
•原码

8位2进制数,将第1位作为符号位,将剩余位作为数值位,用于表示真值的绝对值。符号位为0,则为正数,符号位为1,则为负数。

① 若机器字长为n+1位,带符号整数的原码表示范围:

-(2^n-1)\leq x\leq 2^n-1

② 原码的真值0有两种形式:+0和-0:[+0]原=0,0000000        [-0]原=1,0000000

原码的缺点:

如下图所示,如果想实现+19+(-19),将两者的原码直接相加,得到的结果是错误的,正确的结果应该是19-19=0才对。

这是因为符号位参与了运算,对于原码的加减,符号位是不能参与运算的,需要设计更复杂的硬件电路才能处理。

怎么才能解决这个问题呢----补码表示法,如果用补码表示各个参与运算的数,符号位就能参与运算,并且得出正确的结果。

所以,计算机内部,所有带符号整数的加/减法都要先转换为补码。

•反码

反码是专门用于原码到补码的转换的:

若原码是一个正数

原码,反码,补码的表示都是一样的,保持不变即可。

若原码是一个负数

① 转换为反码:符号位不变,数值位取反

② 在得到的数末尾+1

-100同理:

注意:

① 原码,反码,补码的最高位都反映了符号。

原码转换为反码,反码转换为原码的操作都是相同的,即符号位保持不变,数值位按位取反。

③ 如果考试的时候,需要将补码转化为反码,不建议直接(补码-1),可以先将补码转换为原码,再将原码转换为反码。

④ 原码与补码之间快速转换的方法:

如果原码是正数:原码和补码相同。

如果原码是负数:原码转换为补码和补码转换为原码的方法相同,即:

从右往左找到第一个1,这个1左边的所有“数值位”按位取反。

例如,原码为1,1100100

从右往左第一个1:1,1100100,“1”左边的所有"数值位"全部按位取反:1,0011100,即得到补码。

补码转原码也是同样的操作,自己可以试试。

•补码
补码的加法运算:

从最低位开始,按位相加(符号位参与运算)并往更高位进位。

注:补码的数值位不能解读为“位权”。如下图所示,正数的补码可以解释为“位权”,但是"负数"则不行。

对于两个负数相加,用补码运算也能得到得到正确结果:

补码的减法运算:

由于减法电路制造成本较昂贵,所以可以用等价的加法电路替代减法电路,思路如下:

A-B=A+(-B)

[A]补-[B]补=[A]补+[-B]补

类比无符号整数的"减法"操作:

① "被减数"不变,"减数"全部位按位取反,末位+1,减法变加法。

② 从最低位开始,按位相加,并往更高位进位。

这里的"减数"对应的就是补码减法中的[B]补,两者的操作是一摸一样的。也就是说,无论是实现无符号整数的减法,还是有符号整数的补码减法,在计算机看来都是一样的,我们可以使用同一套电路就能实现这两种操作。

怎么实现[B]补和[-B]补的相互转换:将全部位按位取反,再在末位+1。

例如下图:

补充:更快的手算方法

与补码,原码之间的相互转换类似:从右往左找到第1个"1",以这个"1"为界,将其左边部分(包括符号位)全部取反,右边部分保持不变。(:原码与补码之间的相互转换是"1"的左边的全部"数值位"按位取反)

知道了[B]补--->[-B]补,那么就可以将补码减法转化为等价的加法操作了,举个例子:

原码,反码和补码的特性对比

1.原码

合法表示范围:

若用n+1bit表示原码,原码的数值位由n个bit表示,那么n个比特能够表示的数值范围是0~2^n-1,再加上1个bit的符号位,所以原码的表示范围

-(2^n-1)\leq x\leq 2^n-1

最大的数:

0,111....111=2^n-1

最小的数:

1,111....111=-(2^n-1)

真值0的表示方式:

[+0]原=0,000....000        [-0]原=1,000....000

2.反码

合法表示范围:

-(2^n-1)\leq x\leq 2^n-1

最大的数:

0,111....111 = 2^n-1

最小的数:

1,000....000 = -(2^n-1)

真值0的表示方式:

[+0]反=0,000....000        [-0]反=1,111....111

3.补码

合法表示范围:

补码的合法表示范围要比原码多一个负数,也就是说,如果使用8bit表示原,反,补码的话,原码的合法表示范围是-127~127,补码的合法表示范围是-128~127。

重要-2^n\leq x\leq 2^{n}-1

最大的数:

0,111...111= 2^n-1

最小的数:

重要:1,000....000=-2^n

这里是定义的,只需要记住这一特殊存在即可。用8bit表示补码,最小的数是-128;用8bit表示原码,最小的数是-127,也就是说-128没有与之对应的原码,原码没有办法表示这一特殊的值。

真值0的表示方式:

重要真值0只有唯一的补码:[0]补=0,000...000

可以这样理解,另一个数1,000....000,被用作表示-2^n了,即被用作表示最小值了。

4.无符号整数

合法表示范围:

0\leq x\leq 2^{n+1}-1

最大的数:

1111...111=2^{n+1}-1

最小的数:

0000...000=0

真值0的表示:

0000...000

总结:

•移码

补码的基础上将符号位取反。

:移码只能用于表示整数,而原码,反码,补码可以用于表示小数。

① 移码和补码相同,只有1种真值0的表示方式,以8bit为例:[0]移=1,0000000

② 移码的合法表示范围也和补码相同,比原码多一位负数:

-2^n\leq x\leq 2^{n}-1

观察一下移码从-128到127的二进制表示,刚好是无符号整数0~255。利用这个特点,移码表示的整数可以很方便地用硬件电路对比大小。移码通常用于表示浮点数的阶码。

用几种码表示的机器数:


五.定点小数

定点数分为定点整数和定点小数,定点整数就是带符号整数。之前在学习定点整数时,我们默认了一点,就是小数点固定在最后一位。小数点前面一位是2^0,再往前为2^1,依次类推,所以“位权”是根据这一位与小数的相对位置决定的。

定点整数可以用原码,反码,补码,移码表示,而定点小数只能用原码,反码,补码表示:

定点小数中,小数点的位置隐含在符号位之后,同理,每一位数的“位权”也是根据这个数与小数点的相对位置决定的,例如小数点后第一位为2^-1,小数点后第二位为2^-2,依次类推:

1.定点小数的原码表示

:定点整数的符号位后面通常由","隔开,而定点小数的符号位后面通常由“.”隔开。

2.定点小数的反码/补码表示

怎么用定点小数的原码得到定点小数的反码和补码呢,其实操作和定点整数一模一样。

3.定点小数的加/减运算

定点小数的加/减法运算也和定点整数的操作一模一样:

定点小数补码的加法:

从最低位开始,按位相加(符号位参与运算),并往更高位进位。

定点小数补码的减法:

① “被减数”不变,“减数”全部位按位取反、末位+1,减法变加法

② 从最低位开始,按位相加,并往更高位进位

举个例子:

和定点整数的处理逻辑是一样的

对比整数补码的加法操作和小数补码的加法操作。下面的例子中,寄存器里面的值是一模一样的,只是在定点整数和定点小数中,对应位置的“位权”不同而已。

也就是说,在计算机看来,不管是对于定点整数还是定点小数,都是用同一套逻辑来处理的,只是人为解读的对应位置的位权不同而已。

4.定点小数中的原码,反码和补码

•原码

定点小数的原码,数值部分能表示的最大值为 全1 ,即2^-1+2^-2+2^-3....,利用等比数列求和公式,则数值部分最大为1-2^{-n}

再结合前面的符号位,得到定点小数的表示范围:

-(1-2^{-n})\leq x\leq 1-2^{-n}

最大的数:

0,111....111=1-2^{-n}

最小的数:

1,111....111=-(1-2^{-n})

定点小数原码对真值0的表示同样有两种:

[+0]原 = 0,000...000

[-0]原 = 1,000...000

•反码

定点小数的表示范围:

-(1-2^{-n})\leq x\leq 1-2^{-n}

最大的数:

0,111....111=1-2^{-n}

最小的数:

1,000...000=-(1-2^{-n})

定点小数原码对真值0的表示同样有两种:

[+0]反 = 0,000...000

[-0]反 = 1,111...111

•补码

合法的表示范围:

重要-1\leq x\leq 1-2^{-n}

最大的数:

0,111....111=1-2^{-n}

最小的数:

重要:1.000...000=-1

和定点整数的补码相同,这个特殊的值无法用定点小数的原码表示出来。

真值0的表示:

[0]补 = 0,000...000,真值0只有一种补码。

对比定点整数和定点小数:

5.定点小数的位置扩展

定点整数和定点小数还有一个很重要的区别,就是位置扩展时,两者的拓展位置不同。来看下面的例子,由于定点小数的小数点在符号位的后面,所以当4bit要拓展为8bit时,是在二进制数的最后进行扩展:

对于定点整数,如果要将4bit拓展为8bit,则需要在符号位后面进行拓展:

相关文章:

数据的表示和运算

目录 一.各进制间的相互转换 1.各进制转化为10进制 2.二进制和八进制,十六进制之间地相互转化 3.十进制转换为其他进制 二.BCD码(Binary-Coded Decimal,用二进制编码的十进制) 1.8421码 2.余3码 3.2421码 三.无符号整数 …...

【爬虫工具】油管视频批量采集软件

一、背景介绍 1.1 爬取目标 我用Python独立开发了一款爬虫软件,作用是:通过搜索关键词采集ytb的搜索结果,包含14个关键字段:关键词,页码,视频标题,视频id,视频链接,发布时间,视频时长,频道名称,频道id,频道链接,播放数,点赞数,评…...

【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名

【LeetCode刷题】Day 14 题目1:153.寻找旋转排序数组中的最小值思路分析:思路1:二分查找:以A为参照思路2:二分查找,以D为参照 题目2:LCR 173.点名思路分析:思路1:遍历查找…...

使用python绘制小提琴图

使用python绘制小提琴图 小提琴图效果代码 小提琴图 小提琴图(Violin Plot)是一种结合了箱线图和核密度估计图的图形,用于显示数据分布的情况。它不仅展示了数据的四分位数、最大值和最小值,还通过密度曲线展示了数据的分布形状。…...

【C++】6-7 你好,输出的格式控制(三角形)

6-7 你好,输出的格式控制(三角形) 分数 10 全屏浏览 切换布局 作者 向训文 单位 惠州学院 完善程序:输入行数rows(大于0),第一行输出rows个*,接下来每行的*个数减1,直…...

力扣每日一题 6/1

2928.给小朋友们分糖果[简单] 题目: 给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。 示例 1: 输入:n 5, limit 2 …...

决定短视频打开率的要素:成都鼎茂宏升文化传媒公司

​ 在当下这个短视频盛行的时代,无论是个人创作者还是企业品牌,都希望通过短视频平台获得更多的曝光和关注。然而,如何让自己的短视频在众多内容中脱颖而出,吸引用户的点击和观看,成为了摆在我们面前的重要问题。成都…...

解决通过包管理器下载 Sharp 时遇到的二进制文件下载问题

sharp 是一个流行的 Node.js 库,用于高性能的图片处理。它依赖于预构建的 libvips 二进制文件,这些文件通常是从官方仓库下载的。 但在某些地区的网络环境下,直接下载可能会因为网络限制而失败。 通过在命令行中分别执行以下两行内容即可&a…...

反序输出c++

题目描述 输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。 输入 输入一行共有n个数,每个数之间用空格隔开。 输出 如题要求:一行,共有n个数&…...

C++ 封装线程池(结合QT支持信号机制)

纯C风格线程池 纯C 风格线程池可参考这篇文章 https://llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2c2IJUcCUOfzEQQRRdOXYIZuCjP 视频教程 相关线程池和并发编程的视频可以看看这个连接: https://www.bilibili.com/video/BV1Xt421H7M7/?vd_s…...

c# 学习教程

打印语句 折叠代码 变量 整形 浮点型 特殊类型...

【ros2】入门

ros2 在机器人控制,无人机飞行控制,自动驾驶领域,ros2可是如日中天的存在。无论是学习其架构设计,还是使用ros2开发机器人,ros2的是一个很错的选择。 安装 在ros2的,推荐“小鱼”的工具 wget http://fishros.com/i…...

网络安全基础技术扫盲篇 — 名词解释之“数据包“

用通俗易懂的话说: 数据包就像是一个信封。当你写信给某个人时,你将内容写在一张纸上,然后将纸叠起来并放入信封中,就形成了一个完整要发送的数据内容。信封上有发件人和收件人的详细地址,还有一些其他必要的信息&…...

26 _ 虚拟DOM:虚拟DOM和实际的DOM有何不同?

虚拟DOM是最近非常火的技术,两大著名前端框架React和Vue都使用了虚拟DOM,所以我觉得非常有必要结合浏览器的工作机制对虚拟DOM进行一次分析。当然了,React和Vue框架本身所蕴含的知识点非常多,而且也不是我们专栏的重点&#xff0c…...

C语言(内存函数)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…...

JVM之【执行引擎】

执行引擎 执行引擎是JVM的核心组件之一,它负责将Java字节码文件转换为机器指令并执行。这一过程涉及多个组成部分,各部分协同工作来完成字节码到机器指令的转换和执行。以下是执行引擎的主要组成部分及其作用: 1. 解释器(Interp…...

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表,选择Public Repositories,确定待上传jar包不在私服中 4、选择3rd party仓库,点击Artifact Upload页签 5、GAV Definition选…...

Android精通值Fragment的使用 —— 不含底层逻辑(五)

1. Fragment 使用Fragment的目标:根据列表动态显示内容,更简洁显示界面、查找界面 eg. 使用新闻列表动态显示新闻 1.1 Fragment的特性 具备生命周期 —— 可以动态地移除一些Fragment必须委托在Activity中使用可以在Activity中进行复用 1.2 Fragmen…...

apache大数据各组件部署搭建(超级详细)

apache大数据数仓各组件部署搭建 第一章 环境准备 1. 机器规划 准备3台服务器用于集群部署,系统建议CentOS7+,2核8G内存 172.19.195.228 hadoop101 172.19.195.229 hadoop102 172.19.195.230 hadoop103 [root@hadoop101 ~]# cat /etc/redhat-release CentOS Linux rele…...

Servlet搭建博客系统

现在我们可以使用Servlet来搭建一个动态(前后端可以交互)的博客系统了(使用Hexo只能实现一个纯静态的网页,即只能在后台自己上传博客)。有一种"多年媳妇熬成婆"的感觉。 一、准备工作 首先创建好项目,引入相关依赖。具体过程在"Servlet的创建"中介绍了。…...

NextJs 渲染篇 - 什么是CSR、SSR、SSG、ISR 和服务端/客户端组件

NextJs 渲染篇 - 什么是CSR、SSR、SSG、ISR 和服务端/客户端组件 前言一. 什么是CSR、SSR、SSG、ISR1.1 CSR 客户端渲染1.2 SSR 服务端渲染1.3 SSG 静态站点生成① 没有数据请求的页面② 页面内容需要请求数据③ 页面路径需要获取数据 1.4 ISR 增量静态再生1.5 四种渲染方式的对…...

Python 二叉数的实例化及遍历

首先创建一个这样的二叉树,作为我们今天的实例。实例代码在下方。 #创建1个树类型 class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright #实例化类 node1TreeNode(5) node2TreeNode(6) node3TreeNode(7) node4Tre…...

计算 x 的二进制表示中 1 的个数

计算 x 的二进制表示中 1 的个数 代码如下: int func(int x){int countx 0;while (x>0){countx;x x & (x - 1);}return countx;} 完整代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat…...

基于Vue的前端瀑布流布局组件的设计与实现

摘要 随着前端技术的不断演进,复杂业务场景和多次迭代后的产品对组件化开发提出了更高的要求。传统的整块应用开发方式已无法满足快速迭代和高效维护的需求。因此,本文将介绍一款基于Vue的瀑布流布局组件,旨在通过组件化开发提升开发效率和降…...

WinSW使用说明

WinSW使用说明 Windows系统下部署多个java程序 场景: 多个java的jar程序,通常来说一个程序使用一个cmd窗口,通过java -jar xxx.jar 命令来运行。这样如果程序多了打开cmd窗口也就多了。 解决: 通过使用WinSW程序,把ja…...

SpringBoot 多模块 多环境 项目 单元测试

环境描述 假设项目中有以下三个yml文件: application.ymlapplication-dev.ymlapplication-prod.yml 假设项目各Module之间依赖关系如下: 其中,D依赖C,C依赖B,B依赖A,D对外提供最终的访问接口 现在要想采…...

网络安全法中的网络安全规定和措施

《中华人民共和国网络安全法》是中国首部全面规范网络空间安全管理的基础性法律,旨在加强网络安全,保障国家安全和社会公共利益,保护公民、法人和其他组织的合法权益,促进互联网的健康发展。以下是该法律中关于网络安全的一些核心…...

一、搭建 Vue3 Admin 项目:从无到有的精彩历程

在前端开发的领域中,Vue3 展现出了强大的魅力,而搭建一个功能丰富的 Vue3 Admin 项目更是充满挑战与乐趣。今天,我将和大家分享我搭建 Vue3 Admin 项目的详细过程,其中用到了一系列重要的依赖包。 首先 让我们开启这个旅程。在确…...

Qt | Qt 资源简介(rcc、qmake)

1、资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件(前面所讨论的数据都存储在外部设备中)。若应用程序始终需要一组特定的文件(比如图标),则非常有用。 2、资源系统基于 qmake,rcc(Qt 的资源编译器,用于把资源转换为 C++代码)和 QFile …...

对boot项目拆分成cloud项目的笔记

引言:这里我用的是新版本的技术栈 spring-boot-starter-parent >3.2.5 mybatis-spring-boot-starter >3.0.3 mybatis-plus-boot-starter >3.5.5 spring-cloud-dependencies …...

CTF本地靶场搭建——基于阿里云ACR实现动态flag题型的创建

接上文,这篇主要是结合阿里云ACR来实现动态flag题型的创建。 这里顺便也介绍一下阿里云的ACR服务。 阿里云容器镜像服务(简称 ACR)是面向容器镜像、Helm Chart 等符合 OCI 标准的云原生制品安全托管及高效分发平台。 ACR 支持全球同步加速、…...

【面试经典150题】删除有序数组中的重复项

目录 一.删除有序数组中的重复项 一.删除有序数组中的重复项 题目如上图所示,这里非严格递增排序的定义是数字序列,其中相邻的数字可以相等,并且数字之间的差值为1。 这题我们依旧使用迭代器进行遍历,比较当前的数据是否与下一个数…...

太阳能辐射整车综合性能环境试验舱

产品别名 步入式恒温恒湿试验箱、步入式温湿度试验箱、温度试验室、模拟环境试验室、大型恒温恒湿箱、步入式高低温湿热交变试验箱、大型高低温箱、步入式老化箱、恒温恒湿试验房、步入式高低温试验箱. 整车综合性能环境试验舱:整车综合性能环境试验舱:主要用于整车高低温存放…...

JS脚本打包成一个 Chrome 扩展(CRX 插件)

受这篇博客 如何把CSDN的文章导出为PDF_csdn文章怎么导出-CSDN博客 启发,将 JavaScript 代码打包成一个 Chrome 扩展(CRX 插件)。 步骤: 1.创建必要的文件结构和文件: manifest.jsonbackground.jscontent.js 2.编写…...

js事件对象

js事件对象概念说明 在JavaScript中,事件对象是在事件触发时由浏览器自动创建的一个对象。它包含了与事件相关的信息,例如触发事件的元素、事件类型、鼠标的坐标等。 可以通过事件处理函数的第一个参数来访问事件对象。例如,在一个鼠标点击…...

希捷硬盘怎么恢复数据? 5 个免费希捷数据恢复软件

希捷已迅速成为全球最大的数字存储提供商。许多人选择并使用希捷外置硬盘来存储他们的媒体文件、学校或工作文件以及其他重要数据。有时,希捷硬盘中的数据会丢失。 如果您丢失了希捷硬盘上的数据,请不要惊慌。在专业的希捷数据恢复软件的帮助下&#xf…...

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:京东无人配送机器人

电商巨头京东已选用NVIDIA Jetson AGX Xavier 平台,作为下一代自主配送机器人核心AI算力。 在过去的几十年中,中国占据了全球40%以上的电商交易——每年约为千亿美元。根据麦肯锡全球研究院的数据,这一数字已经高于法国、德国、…...

STM32作业实现(七)OLED显示数据

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...

elementui el-tooltip文字提示组件弹出层内容格式换行处理

1、第一种 1.1 效果图 1.2、代码 <template><div class"wrapper"><el-tooltip class"content" effect"dark" placement"top"><div slot"content"><div v-html"getTextBrStr(text)"&…...

Python3 笔记:每天一个函数——str.join()

join() &#xff1a;连接字符串数组。将字符串、元组、列表中的元素以指定的字符&#xff08;分隔符&#xff09;连接生成一个新的字符串。 语法&#xff1a;sep.join(seq) 参数说明&#xff1a; sep&#xff1a;分隔符。可以为空。 seq&#xff1a;要连接的元素序列、字符串…...

深入解析Python中的None与null:它们真的不同吗?

标题&#xff1a;深入解析Python中的None与null&#xff1a;它们真的不同吗&#xff1f; 摘要 在Python编程中&#xff0c;None是一个常见的概念&#xff0c;而null则通常与Python之外的语言相关。尽管None和null在某些语言中可以互换使用&#xff0c;但在Python中&#xff0…...

论文作图之高压缩比导出PDF

笔者使用Adobe Illustrator 2023创建可编辑pdf图&#xff0c;按照默认的导出设置保存pdf文件时&#xff0c;得到的图存储很大。为了解决存储过大且还保留一定编辑功能的问题&#xff0c;作者实践出了一种导出pdf的设置方法。 首先在AI中点击文件->存储为&#xff0c;点击保…...

SpringBoot的启动流程

SpringBoot的启动流程 主要包括初始化配置、创建应用程序上下文、刷新上下文以及通知监听者等步骤。 下面将详细探讨SpringBoot的启动流程&#xff0c;以了解其背后的工作原理和机制&#xff1a; 初始化配置&#xff1a;当main方法被调用时&#xff0c;首先通过类加载器读取cla…...

Kubernetes资源调度策略及实现机制

目录 一、资源调度策略 1.默认调度器&#xff08;Default Scheduler&#xff09; 2.自定义调度器&#xff08;Custom Scheduler&#xff09; 3.亲和性与反亲和性&#xff08;Affinity and Anti-Affinity&#xff09; 4.污点与容忍&#xff08;Taint and Tolerations&#…...

finetuning大模型准备(基于Mac环境)

为finetuning进行的热身准备&#xff0c;涉及周边的软件工具&#xff0c;方法。 问题1&#xff1a;finetuning过程较长&#xff0c;采用系统自带命令行没有后台&#xff0c;前台被杀后&#xff0c;容易造成训练失败。 解决方法&#xff1a; tmux可以开启后台训练 问题2&…...

js检验一个字符串是否是正确时间格式的工具方法

js检验一个字符串是否是正确时间格式的工具方法 (()> {/*** 检验字符串是否为时间格式* param {String} date 需要检验的时间格式* returns true 为时间格式&#xff0c;false 为非时间格式*/const isTimaFormat (date) > {if(!date) return false;try{const tempTime …...

大型制造业集团IT信息化总体规划方案(65页PPT)

方案介绍&#xff1a; 本大型制造业集团IT信息化总体规划方案旨在通过构建先进、高效、稳定的IT信息化系统&#xff0c;支撑集团各业务领域的运营和管理需求&#xff0c;促进集团整体运营效率和竞争力的提升。通过实施本项目&#xff0c;集团将能够更好地应对市场变化和客户需…...

【LIN】STM32新能源汽车LIN通信实现过程

【LIN】STM32新能源汽车LIN通信实现过程 文章目录 前言一、软件二、接线图三、硬件原理图四、上位机五、PICO示波器串行解码1.软件中的LIN波特率设置-192002.PIC设置3.PIC串行解码 六.引用总结 前言 【电机控制】直流有刷电机、无刷电机汇总——持续更新 使用工具&#xff1a;…...

【LeetCode:575. 分糖果+ 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

全文检索-ElasticSearch

1.基本概念 1.Index索引 动词&#xff1a;相当于MySQL中的insert&#xff1b; 名词&#xff1a;相当于MySQL中的DataBase&#xff1b; 2.Type&#xff08;类型&#xff09; 在Index&#xff08;索引&#xff09;中&#xff0c;可以定义一个或多个类型 类似于MySQL中的Tab…...