数字电路中二进制的数据表达

文章目录

1. 二进制数据表达

1.1 二进制简介

1.2 用二进制表达文字

1.2.1 最开始的表达方式

1.2.2 通讯系统的编码和解码

1.2.3 集成电路

1.2.4 ASCII编码

1.2.5 GBK编码

1.2.6 Unicode编码

2. 用二进制表达图像

2.1 图片像素化

2.2 像素数字化

2.3 二值图像

2.4 灰度图像

2.5 彩色图像

2.6 图像文件的存储

3. 用二进制表达声音

3.1 采样

3.2 量化

3.3 频谱分析

3.4 时序频谱图

4. 用二进制表达视频


 

1. 二进制数据表达

1.1 二进制简介

二进制是一种数字表示法,它使用两个不同的数字符号,0和1,来表示数值。下面是一些二进制的基本概念:

  • 位(bit)

不同于十进制中,每个位可以用0-9表示,二进制中每位都是0或1,每个二进制位我们称之为一个bit,可以表示两种状态。位一般用b代替,例如8b代表8个bit。

  • 字节(byte)

8bit组成一个字节,总共可以表示2^8,256种状态。字节一般用B代替,例如8B一般表示8个字节。

  • 其他计量单位(K,M,…)

K:表示2的十次方,例如,1KB就是1024B  

M:表示2的20次方。例如:1MB就是1048576B

G:表示2的30次方。

T:表示2的40次方。

  • 这里需要注意字母b的大小写,B代表字节,b代表位:就比如网速100Mbit,B=8bit,所以网速只能达到12.5M/s。
  • 正负表示,计算机语言没有正负符号,也是用0和1表示,例如256的范围其实是-128 – 127.中间有一位就是符号位。

1.2 用二进制表达文字

1.2.1 最开始的表达方式

最开始使用不同位数的通讯系统来发出不同顺序的0和1。

1位通讯系统

  • 系统描述:1位通讯系统可以发出2种不同的信号。
  • 信号表示:这两种信号可以用0和1来表示。
  • 二进制表示:在二进制系统中,这1位可以取两个值:0或1。

2位通讯系统

  • 系统描述:2位通讯系统可以发出4种不同的信号。
  • 信号表示:这四种信号可以通过两种不同的开关组合来表示。
  • 二进制表示:在二进制系统中,这2位可以取四个不同的值:00、01、10、11。

3位通讯系统

  • 系统描述:3位通讯系统可以发出8种不同的信号。
  • 信号表示:这八种信号可以通过三种不同的开关组合来表示。
  • 二进制表示:在二进制系统中,这3位可以取八个不同的值:000、001、010、011、100、101、110、111。

通过观察可以发现,使用二进制进行编码,每当位数增加1位,不同取值的数量就会翻倍。因此:

  • 位数 (n):表示二进制数的位数(bit)。
  • 结果数 = 2的n次方:表示可以有多少种不同的取值。

1.2.2 通讯系统的编码和解码

编码过程

假设有一个发件者想要传递一条消息:“天气很冷”。最开始为了传递这条消息,会用一种特定的编码方式,比如用一系列灯的闪烁来表示信息:

首先,发件者确定一个编码规则,例如:

  • 闪一次表示字母“A”
  • 闪两次表示字母“B”
  • 闪三次表示字母“C”

依此类推

然后,他把“天气很冷”这句话转换成编码:

  • “天” -> 闪五次(假设“天”对应第五个字母)
  • “气” -> 闪七次(假设“气”对应第七个字母)
  • “很” -> 闪八次(假设“很”对应第八个字母)
  • “冷” -> 闪六次(假设“冷”对应第六个字母)

这样,“天气很冷”就被编码成了灯的闪烁信号:闪五次,闪七次,闪八次,闪六次。

解码过程

假设有一个接收者,他收到了一系列灯的闪烁信号,现在他需要把这些信号解码成原始信息:

接收者观察灯的闪烁,并记录下来:

  • 闪五次
  • 闪七次
  • 闪八次
  • 闪六次

然后,接收者根据相同的编码规则,将这些闪烁次数转换成相应的字母:

  • 闪五次 -> “天”
  • 闪七次 -> “气”
  • 闪八次 -> “很”
  • 闪六次 -> “冷”

最后,接收者将这些字母组合起来,得到了原始信息:“天气很冷”。

1.2.3 集成电路

整个人类计算机的迭代史可以总结为:把更多的表示信号的“灯”塞到超小的空间里。这种把电路塞到一个小芯片的技术叫做集成电路。

集成电路的构成

  • 基础电路:基本电路,包括电池、开关和灯泡。
  • 扩展到N个电路:如果把这个基础电路扩展成多个灯泡和开关组合,就可以形成复杂的电路系统。
  • 集成电路:这些复杂的电路系统可以被集成到一个小芯片中,这就是集成电路。

现代计算机中的晶体管

现在,我们可以使用纳米级的晶体管。笔记本电脑中就有至少几十亿个的晶体管。这使得我们可以直接从中抽出一部分“灯”来输出信息。

1.2.4 ASCII编码

工程师们意识到有必要制定一种标准化的编码系统。这样,无论是哪个公司的计算机,使用的都是同一种编码规则,信息交流就可以变得更加顺畅。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)应运而生。ASCII编码为每一个字符分配了一个唯一的二进制编码,确保所有系统都能使用相同的方法来表示和解读字符。

ASCII编码的特点

  • 标准化:ASCII为128个字符分配了唯一的编码,包括字母、数字、标点符号和控制字符。
  • 兼容性:ASCII编码使不同计算机系统之间的信息交换变得更加容易和可靠。
  • 简洁性:由于使用7位二进制数来表示每个字符,ASCII编码简单且高效。

通过这种方式,无论信息是在什么系统中处理,都可以保证其一致性和准确性。

最初的ASCII编码表包含128个字符,使用了7个比特来表示这些字符(2^7 = 128)。这些字符分为两类:

控制字符

控制字符是用于控制设备的操作,这些字符通常不打印出来,而是用于指示某种操作。例如:

  • 回车 (CR, Carriage Return)
  • 换行 (LF, Line Feed)
  • 制表符 (Tab)

可打印字符

可打印字符是可以在屏幕上显示或打印出来的字符,包括:

  • 空格
  • 标点符号,例如句号 (.), 逗号 (,), 感叹号 (!)
  • 数字 (0-9)
  • 大写字母 (A-Z)
  • 小写字母 (a-z)
  • 特殊字符,例如@, #, $, %, ^
  • 图形符号,例如[, ], {, }, ^

ASCII编码表示例

为了进一步理解,让我们看一些常见字符的ASCII编码:

  • 'A' 的 ASCII 编码是 65 (01000001)
  • 'a' 的 ASCII 编码是 97 (01100001)
  • '1' 的 ASCII 编码是 49 (00110001)
  • 空格 (' ') 的 ASCII 编码是 32 (00100000)

1.2.5 GBK编码

随着计算机技术的发展,8个比特(1字节)的字符集对于中文这样常用字符接近7000个的语言来说是不够的。

延续之前的思路,这类问题可以通过增加bit来处理。因为byte已经作为基本存储单元,我们可以直接增加byte。于是,这个时候就有了GB2312编码。

  • GB2312编码使用2个字节(共16bit)来表示一个字符。
  • GB2312编码收录了6763个常用汉字和682个其它符号,基本涵盖了中国大陆印刷中文字符的需求。

GB2312扩展到GBK

  • GBK(Guobiao Kuozhan,国家标准扩展)是GB2312的扩展版本,继续使用2个字节并加入了繁体字。
  • GBK编码兼容GB2312,当对英文进行编码时仍然使用1个字节。

1.2.6 Unicode编码

在之前介绍的GBK等编码主要关注的是解决中文编码问题。然而,随着互联网和全球化的发展,字符编码的需求变得更加广泛和复杂,需要一种全球统一的编码标准来表示各种语言的字符。

Unicode的统一编码

Unicode旨在为全世界提供一个统一的编码,其具体实现包括UTF-8、UTF-16和UTF-32三种编码方式。

UTF-8

  • 特点:使用1到4个字节表示一个字符。
  • 优点:兼容ASCII编码,所有ASCII字符在UTF-8中依然使用单个字节表示,这使得UTF-8在网络传输和文件存储中非常高效。
  • 用途:广泛用于网页、电子邮件和文件系统等。

UTF-16

  • 特点:使用2个或4个字节表示一个字符。
  • 优点:对常用字符使用2个字节表示,能够平衡存储空间和编码复杂性。
  • 用途:广泛用于操作系统和编程语言的内部处理,如Windows和Java。

UTF-32

  • 特点:始终使用4个字节表示一个字符。
  • 优点:每个字符固定长度,便于快速随机访问字符。
  • 用途:多用于需要高效字符访问的内部处理场景。

兼容性问题

  • UTF-8与ASCII兼容:由于UTF-8对ASCII字符使用单字节表示,UTF-8编码的文本可以直接兼容和读取ASCII编码的文本。
  • UTF-16与UTF-32不兼容:尽管它们都是Unicode的实现方式,但由于编码长度不同,UTF-16和UTF-32之间并不兼容,需要进行转换才能相互读取。

2. 用二进制表达图像

2.1 图片像素化

现实中的图片是连续的,但如果想用数字表示图像,就需要将一张完整的图像,横纵向分别切成很多份,从而拆成一个一个像素点(Pixel),每个像素点是一个色块,而横纵切分的份数,我们称之为分辨率。

  • 分辨率:图像的分辨率是指图像在横向和纵向上的像素数量。例如,800x600的分辨率表示图像在横向有800个像素,纵向有600个像素,总共480000个像素。
  • 比例:图像的比例是其宽高比,如4:3、16:9等。一个4:3比例的图像可能具有800x600、1024x768等分辨率。

分辨率越高,图像越清晰,因为高分辨率的图像包含更多的像素,可以更细致地描述图像细节。

  • 800x600的分辨率适用于小尺寸显示设备。
  • 1920x1080(全高清)适用于大尺寸显示设备。
  • 3840x2160(4K超高清)则适用于超大尺寸显示设备。

2.2 像素数字化

像素的颜色表示

每个像素可以用红(Red)、绿(Green)、蓝(Blue)三原色(RGB)调配成任意颜色。每种原色的深浅可以用一个数字来表示:

  • 8位颜色深度:每个颜色分量(R、G、B)用一个字节(0-255)表示,三个分量总共需要3个字节。这种方式可以表示 256×256×256=16777216种颜色。
  • 16位颜色深度:每个颜色分量用两个字节(0-65535)表示,这样颜色的表示更加精细。

位深(Color Depth)

位深指的是每个颜色分量的位数。例如:

  • 8位深:表示颜色范围是0-255。
  • 16位深:表示颜色范围是0-65535。

位深越大,颜色的过渡越平滑,图像显示效果越好,颜色的细节越丰富。

色深与色阶

  • 色阶:色阶指的是颜色的渐变层次。位深较低时,颜色之间的过渡不够平滑,可能出现明显的色阶(Banding)现象。
  • 位深增加的效果:增加位深可以减少色阶现象,使颜色的过渡更加平滑。例如,从8位深提升到16位深,可以显著改善颜色的连续性。

位深与存储需求

  • 8位深:每个像素需要3个字节存储。
  • 16位深:每个像素需要6个字节存储。
  • 32位深:通常指24位颜色加上8位透明度(Alpha),每个像素需要4个字节存储。

随着位深的增加,存储需求也增加,因此在实际应用中需要权衡图像质量与存储需求。

高动态范围(HDR)

HDR图像使用更高的位深(如10位或12位)来表示更大的亮度范围和更多的颜色细节。HDR图像可以提供更加逼真的视觉效果,尤其在高对比度场景下效果更佳。

2.3 二值图像

二值图像是一种特殊的数字图像,它的每个像素只有两种可能的取值:黑色和白色。在二值图像中,通常使用1表示白色,0表示黑色。

如图所示,这是一张5x5的黑白图片。我们用1表示白色,0表示黑色。

图像的像素化和二值化过程

  1. 像素化:将一张连续的图像横纵向分别切成很多小块,每个小块称为一个像素。通过增加分辨率(像素数量),可以提高图像的清晰度。
  2. 二值化:将每个像素的颜色转换为黑白两种状态。通常使用一个阈值将灰度图像中的每个像素转换为0或1。例如,灰度值大于某个阈值的像素点设为1(白色),小于阈值的设为0(黑色)。

2.4 灰度图像

灰度图像是一种介于二值图像和彩色图像之间的图像形式。在灰度图像中,每个像素用一个数值表示其亮度,这些数值通常范围为0到255(8位深度),对应从黑色到白色的不同灰度级别。

灰度图像的表示方法

在灰度图像中,每个像素的亮度值可以用一个8位(bit)的二进制数表示。具体的灰度级别如下:

  • 数值0表示纯黑色。
  • 数值255表示纯白色。
  • 介于0和255之间的数值表示从纯黑到纯白的不同灰度。

例如:

  • 二进制数00000000对应十进制数0,为纯黑色。
  • 二进制数11111111对应十进制数255,为纯白色。
  • 中间的值如01111111(127)表示中等灰度。

2.5 彩色图像

彩色图像通过多个颜色通道来表示每个像素的颜色。在RGB颜色空间中,使用红色(R)、绿色(G)、蓝色(B)三个通道来混合生成各种颜色。每个颜色通道的值范围为0,255,我们用这三个色彩通道的组合表示颜色。

RGB颜色表示法

  • 红色通道(R):表示红色成分的强度,范围为0到255。
  • 绿色通道(G):表示绿色成分的强度,范围为0到255。
  • 蓝色通道(B):表示蓝色成分的强度,范围为0到255。每个通道都是8bit(1byte),一个像素点由三个通道组成占3byte。
  • (0,0,0) 纯黑色
  • (255,255,255) 纯白色
  • (0,0,255) 蓝色

2.6 图像文件的存储

图像数据的二进制存储

图像在计算机中的存储方式是将其视作由许多小点(像素)构成的矩阵。这些点称为像素,每个像素都有自己的颜色。这些颜色通过RGB(红、绿、蓝)三色混合表示。

存储过程

  • 颜色编码:每个像素的颜色可以由三个通道的数值组合表示。比如,RGB值为(51, 72, 85)的颜色表示其红色通道值为51,绿色通道值为72,蓝色通道值为85。
  • 二进制存储:将这些RGB值转换为二进制并按顺序存储在文件中。

假设一个5x5的图像,每个像素的RGB值已知,存储过程如下:

  • 每个像素的颜色用3个字节表示(每个通道1个字节)。
  • 一个5x5的图像共25个像素,总共需要25x3=75个字节存储。

存储文件格式

计算机将这些像素矩阵的二进制编码保存到电脑中,就可以得到一个图片文件。这种存储方式显然要用更多的字节数量。因此,一个图片文件往往都是纯文本文件的数倍甚至几百倍。

图像文件的大小

由于图像文件包含大量的像素数据,每个像素用多个字节表示,因此图像文件通常比纯文本文件大很多。例如:

  • 一个分辨率为1920x1080(全高清)的RGB图像,未压缩存储需要1920x1080x3=6,220,800字节(约6MB)。
  • 经过JPEG压缩后,文件大小可以减少到几百KB到几MB,具体取决于压缩质量。

3. 用二进制表达声音

声音的数字化过程与图像的数字化过程非常类似,主要包括两个步骤:采样和量化。

3.1 采样

声音来自于物体的振动,是一种连续的波形。如果我们想用数字表达声音,首先需要将其离散化。这一过程称为采样。

采样率

  • 定义:采样率是指每秒钟对声音进行采样的次数。
  • 单位:赫兹(Hz),表示每秒采样的次数。
  • 常用采样率:目前比较常用的采样率是44100Hz(CD音质)和48000Hz(专业音频和视频)。

采样过程

在采样过程中,我们将一段时间(例如1秒钟)的连续声波分成许多等份,并记录每一份的平均振幅。采样率越高,每秒钟的采样次数越多,记录的声音信息就越准确,信息丢失越少。

  • 44100Hz:每秒钟采样44100次,常用于音乐CD。
  • 48000Hz:每秒钟采样48000次,常用于数字视频和音频录制。

3.2 量化

每个采样点的振幅(高度)需要用一个数字表示。这个过程将连续的振幅值离散化,称为量化。

位深(Bit Depth)

  • 定义:位深是指用于表示每个采样点振幅的二进制位数。
  • 常用位深:目前常用的位深为16bit和24bit。
  • 取值范围
    • 16bit:取值范围为0到65535。
    • 24bit:取值范围为0到16777215。

量化过程

在量化过程中,每个采样点的振幅被转换为一个离散的整数值。例如:

  • 对于16bit位深,振幅值被转换为0到65535之间的整数。
  • 对于24bit位深,振幅值被转换为0到16777215之间的整数。

假设我们有一段声音波形,通过44100Hz采样率和16bit位深进行数字化处理。

  1. 采样

    • 将声音波形分为44100个等份(每秒钟)。
    • 记录每个采样点的振幅值。
  2. 量化

    • 将每个采样点的振幅值转换为0到65535之间的整数。

例如,一个简单的声音波形在某一秒的部分采样点可能如下:

  • 采样点1:振幅值32768(中间值)
  • 采样点2:振幅值40000
  • 采样点3:振幅值50000
  • 采样点4:振幅值30000
  • ...

这些采样点的振幅值被转换为二进制数据,存储在计算机中,形成数字音频文件。

3.3 频谱分析

频谱图是一种用于展示声音中不同频率成分的图表。它显示了每个频率分量的振幅(响度),常用于分析音频信号。

频谱图的结构

  • 水平轴(X轴):表示频率,从左到右频率逐渐增高。
    • 左侧:低频段,例如架子鼓、低音提琴等低音部。
    • 右侧:高频段,例如吉他、小号等高音部。
  • 垂直轴(Y轴):表示振幅(响度),柱子越高表示该频率段的声音越响。

频谱图的生成

  1. 采样和量化

    • 对声音信号进行采样,将连续的声波分成离散的采样点。
    • 对每个采样点进行量化,用二进制数表示振幅。
  2. 傅里叶变换

    • 将时间域的声音信号转换为频域的频率成分。
    • 快速傅里叶变换(FFT)是常用的算法,可以高效地计算频谱图。
  3. 绘制频谱图

    • 将不同频率段的振幅用柱状图表示,生成频谱图。

3.4 时序频谱图

时序频谱图是将频谱图按时间顺序排列形成的三维图像,用于展示音频信号随时间变化的频率成分。它结合了频率、振幅和时间三个维度的信息,能够全面地分析和可视化音频信号。

生成时序频谱图的过程

假设有一段音频信号,通过生成时序频谱图,可以全面了解其频率成分随时间的变化。

  1. 采样和量化

    • 对音频信号进行采样(例如44100Hz),将连续波形转换为离散的采样点。
    • 对每个采样点进行量化(例如16位),用二进制数表示其振幅。
  2. 分帧处理和傅里叶变换

    • 将音频信号分成多个时间帧,对每帧进行快速傅里叶变换(FFT),生成频谱图。
  3. 时序排列

    • 按时间顺序排列每个时间帧的频谱图,形成时序频谱图。

4. 用二进制表达视频

视频是由一系列连续的图片(帧)和同步的声音组成的。通过快速播放这些帧,利用人类的视觉残留效应,我们可以看到流畅的运动图像。

视频的帧率

  • 帧率(Frame Rate):每秒钟播放的帧数。常用帧率包括24fps(电影标准)、30fps(电视标准)和60fps(高帧率视频)。
  • 帧率对流畅度的影响:帧率越高,视频越流畅。通常,24fps已经能够提供流畅的观看体验。

视频的时间轴

视频的每一帧按时间顺序排列,形成一个时间轴。声音也按时间顺序与帧同步播放。

视频的数字化过程

1. 采样与量化

  • 图像采样:将视频中的每一帧图像进行采样,将每个像素的颜色用RGB值表示。
  • 声音采样:将同步的声音波形进行采样,用数字表示其振幅。

2. 视频帧的存储

  • 每一帧图像都是一张静态图片,由许多像素组成,每个像素的颜色用RGB值表示。
  • 将这些帧按时间顺序排列,形成一个连续的视频文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git冲突解决指南:如何优雅地解决代码合并冲突

在团队协作开发中,使用版本控制系统Git是非常常见的。然而,在多人同时对同一文件进行修改时,就可能出现代码合并冲突。这时就需要我们学会如何优雅地解决这些冲突,保证代码的完整性和质量。本文将为您介绍Git冲突解决的基本原则和…

string类的使用手册

1.构造函数 补充:npos:size_t类型数据的最大值 default (1) string(); 构造空的string类对象 copy (2) string (const string& str); 拷贝构造函数(深拷贝) substring (3) string (const string& str, size_t pos, size_…

自动化测试火狐下载文件

本篇文章介绍selenium中火狐浏览器如何下载文件。比如我想把这个MP4的视频文件下载下来。 点击之后查看下载的类型是video/mp4 指定使用火狐浏览器 profile webdriver.FirefoxOptions() # 设置firefox默认的下载路径,0表示桌面,1表示我的下载&#xf…

Qt自定义日志输出

Qt自定义日志输出 简略版&#xff1a; #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…

Mysql的联合索引

一、前言 上一篇中已经讲过了索引相关的知识&#xff0c;为什么还要在讲一下联合索引&#xff08;二级索引&#xff09;&#xff0c;是因为这个知识点特别重要&#xff0c;不论是在面试中&#xff0c;还是在实际的使用过程中&#xff0c;理解和掌握联合索引&#xff0c;是我们…

回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测 目录 回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GWO-ESN基于灰狼算法优化回声状态…

DevOps学习回顾01-技能发展路线-岗位能力-体系认知(射箭和拉弓的区别)

事为先&#xff0c;人为重–事在人为 参考来源&#xff1a; 极客时间专栏&#xff1a;DevOps实战笔记&#xff0c;作者&#xff1a;石雪峰 课程链接&#xff1a;https://time.geekbang.org/column/intro/235 时代的典型特征 VUCA VUCA 是指易变性&#xff08;Volatility&…

【MySQL】聊聊数据库是如何保证数据不丢的

对于一个存储系统来说&#xff0c;其中比较关键的核心组件包含&#xff0c;网络、存储模型、持久化、数据结构等。而数据如何保证不丢失&#xff0c;对于不同的存储系统来说&#xff0c;比如Redis采用AOF和RDB的方式进行混合使用&#xff0c;而MySQL采用日志进行保证。也就是re…

MyBatis使用Demo

文章目录 01、Mybatis 意义02、Mybatis 快速入门04、Mapper 代理开发05、Mybatis 配置文件07、查询所有&结果映射08、查询-查看详情09、查询-条件查询10、查询-动态条件查询多条件动态查询单条件动态查询 11、添加&修改功能添加功能修改功能 12、删除功能删除一个批量删…

ubuntu 18.04 安装vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…

滴滴出行 大数据研发实习生【继任】

大数据研发实习生JD 职位描述 1、负责滴滴核心业务的数据建设&#xff0c;设计并打造适应滴滴一站式出行平台业务特点的数仓体系。 2、负责抽象核心业务流程&#xff0c;沉淀业务通用分析框架&#xff0c;开发数仓中间层和数据应用产品。 3、负责不断完善数据治理体系&#xff…

Excel报表

(Apache POI) 入门案例 P164 使用POI需要导入下面2个坐标&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency> <dependency><groupId>org.apache.poi</groupId>&…

uni-app 小程序:显示图片并且点击图片展示大图

效果如图所示&#xff1a; 在页面显示一张图片&#xff0c;然后点击该张图片后显示大图。点击大图就可以关闭大图。 实现的主要代码如下&#xff1a; <image :src"imgpath" mode"aspectFill" click"imgPreview(imgArr)"></image> 其…

Spring Web MVC之过滤器Filter和拦截器HandlerInterceptor的区别和用法

作用时机不一样 Spring 框架有一个很重要的类DispatcherServlet。这个类继承了HttpServlet&#xff0c;HttpServlet实现了Servlet接口。相当于图片中的Servlet。所有和Spring框架相关配置&#xff0c;例如注解、xml配置、其他数据库连接配置、bean配置、拦截器配置等其他配置&…

CleanMyMacX4.15.4如何优化苹果电脑系统缓存,告别MacBook卡顿,提升mac电脑性能

你是否曾为苹果电脑存储空间不够而烦恼&#xff1f;是否曾因系统运行缓慢而苦恼&#xff1f;别担心&#xff0c;今天我要给大家种草一个神器——CleanMyMac&#xff01;这款软件可以帮助你轻松解决苹果电脑的种种问题&#xff0c;让你的电脑焕然一新&#xff01; 让我来给大家介…

【iOS】编译二进制文件说明

编译二进制文件说明 如何生成文件路径文件说明第一部分&#xff1a;.o文件第二部分&#xff1a;link第三部分&#xff1a;Segment第四部分&#xff1a;Symbol 如何生成 使用Xcode进行编译 &#xff0c;会生成二进制相关文件&#xff0c;可以更详细看产物的布局 项目Target -&…

Android中的消息异步处理机制及实现方案

基本介绍 当我们需要执行复杂的计算逻辑&#xff0c;网络请求等耗时操作时&#xff0c;服务器可能不会立即响应请求&#xff0c;如果不将这类操作放在子线程中运行&#xff0c;就会导致主线程被阻塞住&#xff0c;从而影响用户的使用体验如果想要更新应用程序中的UI控件&#…

ASM字节码操纵框架实现AOP

前言 使用ASM改写字节码实现Aop&#xff0c;是最快的Aop实现方式。 我猜你肯定懂AOP 凡是学习Spring框架&#xff0c;必然会深入了解AOP的原理以及实现。这里做下简单总结 Spring默认采取的是动态代理机制实现AOP&#xff0c;当动态代理不可用时&#xff08;代理类无接口&a…

Mac M3 Pro安装Hadoop-3.3.6

1、下载Hadoop安装包 可以到官方网站下载&#xff0c;也可以使用网盘下载 官网下载地址&#xff1a;Hadoop官网下载地址 网盘地址&#xff1a;https://pan.baidu.com/s/1p4BXq2mvby2B76lmpiEjnA?pwdr62r提取码: r62r 2、解压并添加环境变量 # 将安装包移动到指定目录 mv …

FPGA - 数 - 加减乘除

一&#xff0c;数的表示 首先&#xff0c;将二进制做如下解释&#xff1a; 2的0次方1 2的1次方2 2的2次方4 2的3次方8 ..... 以此类推&#xff0c;那么任何整数&#xff0c;或者说任意一个自然数均可以采用这种方式来表示。 例如&#xff0c;序列10101001&#xff0c;根据上述…