【计算机组成原理】二、数据的表示和运算:1.数值与编码(十进制二进制转换、BCD码、ASCII码、汉字编码、奇偶校验码、循环冗余检测CRC、海明码)

news2025/3/12 11:37:20

二、数据的表示和运算

文章目录

  • 二、数据的表示和运算
    • 1.数值与编码
      • 1.1数据存储和排列
      • ❗1.2十进制转换
        • 1.2.1整数
        • 1.2.2小数
      • 1.3二进制转换
        • 1.3.1 B->O
        • 1.3.2 B->H
      • 1.4真值&机器数
      • 1.5 BCD码
      • 1.6 ASCII码
      • 1.7汉字与GBK
      • 1.8 UTF
      • 1.9检错码
        • 1.9.1奇偶校验码
        • 1.9.2循环冗余检测CRC
        • 1.9.3海明(汉明)码

二进制 Bin
十进制 Dec
八进制 Oct
十六进制 Hex(C语言中用 0x表示)

1.数值与编码

1.1数据存储和排列

在计算机系统内部,所有的信息都是用二进制进行编码的,这样做的原因有:

  1. 二进制只有两种状态,使用有两个稳定状态的物理器件就可以表示二进制数的每一位,制造成本较低。
  2. 二进制位1和0正好与逻辑值真和假对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。
  3. 二进制的编码和运算规则都很简单,通过逻辑门电路能方便地实现算术运算。

字符串存储时有大、小端之分。

在这里插入图片描述

边界对齐
在这里插入图片描述

  • 进位计数法

在进位计数法中,每个数位所用到的不同数码的个数称为基数,如10进制的基数为10。每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数称为位权。一个进位数的数值大小就是它的各位数码按权相加。

  • 码的权值:

有权码:例如BCD8421码、BCD2421码,每一位都有固定的权值
无权码:例如余三码,每一位的权值并不确定

eg.二进制的基数是2,计数符号是10,位权是2^n

下面为十进制和二进制之间相互转换的简易方法:

❗1.2十进制转换

十进制转换中整数部分和小数部分分开进行转换。

1.2.1整数
  • 下图演示了将十进制数字 36926 转换成八进制的过程:

在这里插入图片描述

从图中得知,十进制数字 36926 转换成八进制的结果为 110076。

  • 下图演示了将十进制数字 42 转换成二进制的过程:

在这里插入图片描述

从图中得知,十进制数字 42 转换成二进制的结果为 101010。

1.2.2小数
  • 下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:

在这里插入图片描述

从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

  • 下图演示了将十进制小数 0.6875 转换成二进制小数的过程:

在这里插入图片描述

从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。

1.3二进制转换

1.3.1 B->O

二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

在这里插入图片描述

1.3.2 B->H

二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

在这里插入图片描述

1.4真值&机器数

+15,-8这种带+或-符号的数称为真值,真值是机器数所代表的实际值。

在计算机中,通常采用数的符号与数值一起编码的方法来表示数据,常用的有原码、补码、反码表示法。这几种表示法都将数据的符号数字化,通常用0表示正,用1表示负

如0,101(逗号“,”并不实际存在,只是用来区分符号位与数值位,约定整数的数值位与符号位之间用逗号隔开,小数的符号位与数值位之间用小数点隔开)表示+5。这种把符号数字化的数称为机器数。

1.5 BCD码

binary-coded decimal,用二进制编码的十进制

  • 8421

用4bit表示1个十进制09(00001001)

冗余6位,比如5+8=13(1101)这种超出9(1001)的数,再加6(0110)进行修正,得到0001 0011表示13

  • 2421

0~4的第一位都是0
5~9的第一位都是1

原因:5(0101)(1011)两种都可表示,会出现歧义,所以只使用后者

  • 余三码

是一种无权码。在8421码的基础上加上3,即0(0011),1(0100)

1.6 ASCII码

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。

2^7=128。用7bit就可以表示完全,不过1B(字节)=8bit,所以还要在高位补0。最早是7位,后来扩充为8位,在7位时期,为满足被8整除条件,需加1位空位才能使用

0~9的ASCII码值为48(011 0000)~57(011 1001),即去掉高3位,只保留低4位,正好是二进制形式的0~9。

a-z(97-122)A-Z(65-90)

a-A = 32,而32是空格。

其中0-31和127是控制字符,其他的才是可显示字符

二进制十进制十六进制字符/缩写解释
00000000000NUL (NULL)空字符
00000001101SOH (Start Of Headling)标题开始
00000010202STX (Start Of Text)正文开始
00000011303ETX (End Of Text)正文结束
00000100404EOT (End Of Transmission)传输结束
00000101505ENQ (Enquiry)请求
00000110606ACK (Acknowledge)回应/响应/收到通知
00000111707BEL (Bell)响铃
00001000808BS (Backspace)退格
00001001909HT (Horizontal Tab)水平制表符
00001010100ALF/NL(Line Feed/New Line)换行键
00001011110BVT (Vertical Tab)垂直制表符
00001100120CFF/NP (Form Feed/New Page)换页键
00001101130DCR (Carriage Return)回车键
00001110140ESO (Shift Out)不用切换
00001111150FSI (Shift In)启用切换
000100001610DLE (Data Link Escape)数据链路转义
000100011711DC1/XON (Device Control 1/Transmission On)设备控制1/传输开始
000100101812DC2 (Device Control 2)设备控制2
000100111913DC3/XOFF (Device Control 3/Transmission Off)设备控制3/传输中断
000101002014DC4 (Device Control 4)设备控制4
000101012115NAK (Negative Acknowledge)无响应/非正常响应/拒绝接收
000101102216SYN (Synchronous Idle)同步空闲
000101112317ETB (End of Transmission Block)传输块结束/块传输终止
000110002418CAN (Cancel)取消
000110012519EM (End of Medium)已到介质末端/介质存储已满/介质中断
00011010261ASUB (Substitute)替补/替换
00011011271BESC (Escape)逃离/取消
00011100281CFS (File Separator)文件分割符
00011101291DGS (Group Separator)组分隔符/分组符
00011110301ERS (Record Separator)记录分离符
00011111311FUS (Unit Separator)单元分隔符
001000003220(Space)空格
001000013321!
001000103422"
001000113523#
001001003624$
001001013725%
001001103826&
001001113927
001010004028(
001010014129)
00101010422A*
00101011432B+
00101100442C,
00101101452D-
00101110462E.
00101111472F/
0011000048300
0011000149311
0011001050322
0011001151333
0011010052344
0011010153355
0011011054366
0011011155377
0011100056388
0011100157399
00111010583A:
00111011593B;
00111100603C<
00111101613D=
00111110623E>
00111111633F?
010000006440@
010000016541A
010000106642B
010000116743C
010001006844D
010001016945E
010001107046F
010001117147G
010010007248H
010010017349I
01001010744AJ
01001011754BK
01001100764CL
01001101774DM
01001110784EN
01001111794FO
010100008050P
010100018151Q
010100108252R
010100118353S
010101008454T
010101018555U
010101108656V
010101118757W
010110008858X
010110018959Y
01011010905AZ
01011011915B[
01011100925C\
01011101935D]
01011110945E^
01011111955F_
011000009660`
011000019761a
011000109862b
011000119963c
0110010010064d
0110010110165e
0110011010266f
0110011110367g
0110100010468h
0110100110569i
011010101066Aj
011010111076Bk
011011001086Cl
011011011096Dm
011011101106En
011011111116Fo
0111000011270p
0111000111371q
0111001011472r
0111001111573s
0111010011674t
0111010111775u
0111011011876v
0111011111977w
0111100012078x
0111100112179y
011110101227Az
011110111237B{
011111001247C|
011111011257D}
011111101267E~
011111111277FDEL (Delete)删除

1.7汉字与GBK

汉字的表示和编码

汉字的编码包括汉字的输入编码、汉字内码、汉字字形码三种,它们是计算机中用于输入、内部处理和输出三种用途的编码。区位码用2字节(Byte)表示一个汉字,每字节用七位码。区位码是4位十进制数,前2位是区码,后2位是位码,所以称为区位码。

如汉字“学”的区位码为4907(十进制),用2个字节的二进制可以表示为00110001 00000111。

国标码将10进制的区位码转换为16进制数后,再在每字节上加上20H。国标码两字节的最高位都是0,ASCII码的最高位也为0。为了便于区分中文和英文字符,将国标码两字节的最高位都改为1,这就是汉字内码

区位码和国标码都是输入码,它们与汉字内码的关系(16进制)为:

国标码=(区位码)16+2020H  汉字内码=(国标码)16+8080H

最早制定的汉字编码是GB2312,包括6763个汉字和682个其它符号 95年重新修订了编码,命名GBK1.0,共收录了21886个符号。 之后又推出了GBK18030编码,共收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在windows平台必需要支持GBK18030编码。

区内码->国标码->汉字机内码

1.8 UTF

(也就是unicode编码):俗称万国码,致力于使用统一的编码准则表达各国的文字。 为表达更多的文字,utf-8采用2/3混编的方式。目前容纳的汉字范围小于gbk编码。并且以 3字节的方式处理中文,带来了兼容性的问题。

1.9检错码

校验码是指能够发现或能自动纠正错误的数据编码,也称检错纠错编码。校验码的原理是通过增加一些冗余码,来检验或纠错编码。

通常某种编码都由许多码字构成,任意两个合法码字之间最少变化的二进制位数(在一种编码系统中,任意两组合法代码之间的最少二进制位数的差异),称为数据校验码的码距(或称编码的最小距离)(如1100和1101之间的码距为1,因为只有最低位翻转了。而1001和0010之间的码距为3,因为只有1位没有变化)。对于码距不小于2的数据校验码,开始具有检错的能力。码距越大,检错、纠错的能力越强,而且检错能力总是大于等于纠错能力。

  • 检错编码:只是发现有错误,不能纠错,只能重传。
    • 奇偶校验码
    • 循环冗余码CRC
  • 纠错编码 海明码:不仅能发现错误,还能知道是哪一个地方发生错误。
1.9.1奇偶校验码

前面加校验元1/0

要发送的信息 D 有 d 个比特。

偶校验方案中,发送方只需包含一个附加的比特,选择附加比特的值,使得这 d+1 个比特(初始信息加上一个校验比特)中 1 的总数是偶数

在这里插入图片描述

接收方的操作也很简单。接收方只需要数一数接收的 d+1 比特中 1 的个数。
如果发现了奇数个值为 1 的比特,接收方知道了至少出现了一个比特差错。更确切的说法是,出现了奇数个差错比特。但是如果出现了偶数个比特差错,显然这种方法无法检测这种错误。

eg: 如果1001101有4个1,所以在前面加0,保持偶数个1:0,1001101

如果1001100有3个1,所以在前面加1,变成1,1001101

奇校验

1001101有4个,所以在前面加1,变成奇数个1:1,1001101

二维单比特奇偶校验方案中,D 中的 d 个比特被划分为 i 行 j 列。对每行和每列计算奇偶值。产生的 i+j+1 奇偶比特构成了链路层帧的差错检测比特。这种方法可以检测和纠正 1 比特的错误。

用一位奇偶校验能检测出一位主存错误的百分比为()
  A.0   B.1   C.0.5   D.无法计算

答案:B;
若出现一位主存错误,一定能检测出

1.9.2循环冗余检测CRC

在数据发送之前,按照某种关系附加上一定的冗余码,构成一个符合某一个规则的码字之后再发送。当发送的数据发生变化时,冗余码也发生变化,使其不再遵守规则。接收端通过检验是否符合规则判断是否出错。

CRC 编码也称为多项式编码,因为该编码将要发送的比特串看作是系数为 0 和 1 的一个 多项式,对比特串的操作被解释为多项式运算。

发送端:

要传的数据生成多项式冗余码/帧检验序列FCS
5%2= 2 …1

5%2=2…1

最终发送的数据是,要发送的数据+真检测序列FCS。这里就是5+1=6

接收端:

6%2=3…0(余数是0,判定无错,就接受)

计算冗余码FCS步骤

  1. 在要传的数据后加0。
  2. 模2除法。
  3. 最终发送的数据:要发送的数据+FCS。

在这里插入图片描述

如果余数为0,判定这个帧没有差错。(接受)

如果余数不为0,判定这个帧有差错。(丢弃)

FCS的生成以及接收端CRC检验都是由硬件实现的,处理很迅速,不会产生延迟数据。

只使用CRC:凡是接收端数据链路层接受的帧均无差错。能够实现无比特差错的传输,但不是可靠传输(因为错误的帧丢弃了,接收端并没有收到)。

可靠传输:数据链路层发什么,接收端就接收什么。

例题:在CRC中,接收端检测出某一位数据错误后,纠正的方法是()
  A.请求重发   B.删除数据   C.通过余数值自行纠正   D.以上均可

答案:D;CRC可以纠正一位或多位错误(由多项式G(x)决定),而实际传输中纠正方法可以按需求进行选择,在计算机网络中,ABC三种方法都是很常见的

例题:说明CRC码的纠错原理和方法。对4位有效信息(1100)求循环校验码,选择生成多项式(1011)

答案:在CRC码中,选择适当的生成多项式G(x),在计算机二进制信息M(x)的长度确定时,余数与CRC出错位的对应关系是不变的,因此可以用余数作为判断出错位置的依据而纠正错码。CRC码的检错方法如下:接受数据时,将接收的CRC码与G(x)相除,若余数为0,则表明数据正确;若余数不为0,说明数据有错。若G(x)选择适当,余数还可以判断出错的位置,从而实现纠错。

1100的循环校验码为1100 010

1.9.3海明(汉明)码

海明码实际上是一种多重奇偶校验码。其实现原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,还能指出错位的位置。汉明码有一位纠错能力。

可以发现比特错,但是只能纠正比特错。

工作原理:动一发而牵全身:L-1=D+C且D>=C

工作流程:

  1. 确认校验码位数r

    n为有效信息位数,k为校验位的位数,则n和k应满足海明不等式n+k<=2^k-1。

  2. 确定校验码和数据的位置

  3. 求出校验码的值

  4. 检错并纠错

海明不等式:
2 r ≥ k + r + 1 2^r \ge k+r+1 2rk+r+1
r:冗余信息位(校验码位数)
k:信息位(原始数据的位数)

例子:数据D=101101
∴ 数据位数k=6
∵ 海明不等式
∴ 满足不等式的最小r=4
∴ D的海明码应该有6+4=10位
其中原数据6位,效验码4位

校验码是插入原数据之中的,而且,只能放在2的几次方的位置

设4位效验码依次是p1, p2, p3, p4,则它们放在

位数12345678910
二进制0001001000110100010101100111100010011010
代码p1p2d1p3d2d3d4p4d5d6
实际值0010011101

一个校验码可以校验多位数据:

p1的二进制位1在末尾,所以它可以效验1在末尾的数据。
求p1。令所有要校验的位异或为0p1⊕d1⊕d2⊕d4⊕d5=0
将代码对应的实际值代入,得到p1=0

同理,p2的1在第二位,p2⊕d1⊕d3⊕d4⊕d6=0,p2=0

p3=0,p4=1

所以,D=101101的海明码就是0010011101

当接收方收到时候,就会重复上述异或过程,就会检查出那个比特出错了。

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

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

相关文章

鸿蒙Harmony实战:常用命令交互工具—“hvigorw”

hvigor通过hvigorw工具&#xff0c;实现命令行交互。 命令行使用方式 hvigorw [taskNames...] <options> 常用命令 查询 选项 说明 -h, --help 打印hvigor的命令帮助信息。 -v, --version 打印hvigor版本信息。 编译构建 选项 说明 clean 清理构建产物buil…

启动团队活力:5款互动游戏助力新人快速融入

在加入新团队时&#xff0c;很多人都会感到尴尬和不适应。作为团队的领导者&#xff0c;帮助新成员顺利融入团队是至关重要的。组织一场“破冰游戏”是一个有效的策略&#xff0c;不仅可以活跃团队气氛&#xff0c;还能促进成员之间的交流和理解。这时候&#xff0c;团队的领导…

ReFT: reasoning with reinforced Fine-Tuning

从一个question中看到多种多样的cot&#xff0c;都可以从中学习。 offline self-training 数据的质量是模型自己来定义的。 思考增加或者减少一条数据&#xff0c;对于模型训练的影响。 用influence function来衡量新增一条数据对于模型训练的整体的影响。 高质量的数据能够…

深度学习Day-30:CGAN入门丨生成手势图像丨可控制生成

&#x1f368; 本文为&#xff1a;[&#x1f517;365天深度学习训练营] 中的学习记录博客 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] 要求&#xff1a; 结合代码进一步了解CGAN学习如何运用生成好的生成器生成指定图像 一、 基础配置 语言环境&#x…

功能测试与自动化测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 什么是自动化测试? 自动化测试是指利用软件测试工具自动实现全部或部分测试&#xff0c;它是软件测试的一个重要组成 部分&#xff0c;能完成许多手工测试无法实…

【C++】————智能指针

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;C 创作时间 &#xff1a;2024年8月20日 一&#xff0c;什么是智能指针 在C中没有垃圾回收机制&#xff0c;必须自己释放分配的内存&#xff0c;否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针&…

传染病防控宣传小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;防控知识管理&#xff0c;医院信息管理&#xff0c;健康上报管理&#xff0c;医疗捐赠管理&#xff0c;捐赠信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首…

力扣面试经典算法150题:买卖股票的最佳时机 II

买卖股票的最佳时机 II 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a;买卖股票的最佳时机 II。 题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 问…

EfficientFormer 系列算法

1. EfficientFormer V1 模型 论文地址&#xff1a;https://proceedings.neurips.cc/paper_files/paper/2022/file/5452ad8ee6ea6e7dc41db1cbd31ba0b8-Paper-Conference.pdf EfficientFormer V1 基于 ViT 的模型中使用的网络架构和具体的算子&#xff0c;找到端侧低效的原因。然…

深入剖析资产负债率与净资产收益率,掌握财务报表解读技巧

一、概述 财务报表中蕴含了丰富的信息&#xff0c;如果我们在解读时没有清晰的思路&#xff0c;忽略重点&#xff0c;就很容易被庞杂的数据搞得晕头转向。本文将从几个关键指标出发&#xff0c;包括资产负债率的分析、净资产收益率的解读&#xff0c;以及如何计算销售复合增长…

企业高性能web服务器——nginx

一、web基础介绍 Apache 和 Nginx 是当今为互联网提供动力的最流行的Web 服务器。 1.1、apache服务器 1.1.1、Apache prefork 模型 预派生模式&#xff0c;有一个主控制进程&#xff0c;然后生成多个子进程&#xff0c;使用select模型&#xff0c;最大并发1024每个子进程有一…

萌啦数据ozon怎么用,萌啦数据ozon使用教程

在跨境电商的浩瀚蓝海中&#xff0c;Ozon作为俄罗斯及独联体地区领先的电商平台&#xff0c;正吸引着越来越多中国卖家的目光。而“萌啦数据”作为专为跨境电商卖家打造的数据分析工具&#xff0c;其针对Ozon平台的功能更是让众多商家如虎添翼。今天&#xff0c;我们就来详细探…

后悔和父母出游的年轻人,正在计划带宠物旅行

文 | 螳螂观察 作者 | 青月 美编 |赵倩 相比于和父母一起出门远游&#xff0c;现在越来越多的95后“铲屎官”似乎更愿意和自家的宠物们组“旅游搭子”。 这听起来可能有些刺耳&#xff0c;但其实是当下很多年轻人的心声。 “带父母一起去北京玩&#xff0c;本来打算第二天…

【 每日一题 | 计算机网络】定长子网划分

重要知识点讲解 我们首先需要了解一下无分类CIDR的编址格式x.x.x/24&#xff0c;表示有24位的网路号&#xff0c;那么相应的主机号为32-248位子网掩码&#xff08;很重要&#xff09;&#xff0c;用来表示IP地址中标识网络号以及子网号的&#xff0c;也就是说如果要进行子网划…

鸿蒙内核源码分析(中断切换篇) | 系统因中断活力四射

关于中断部分系列篇将用三篇详细说明整个过程. 中断概念篇 中断概念很多&#xff0c;比如中断控制器&#xff0c;中断源&#xff0c;中断向量&#xff0c;中断共享&#xff0c;中断处理程序等等.本篇做一次整理.先了解透概念才好理解中断过程.用海公公打比方说明白中断各个概念…

Windows 环境下 Go 语言使用第三方压缩包 gozstd 的报错处理

该文章主要记录在windows平台用go语言使用gozstd包时&#xff0c;遇到的错误及处理过程&#xff08;踩坑之旅&#xff09;&#xff01; 一、gozstd简介 gozstd是一个针对Zstandard&#xff08;简称Zstd&#xff09;的Go语言包装器&#xff0c;它提供了简单且高效的API&#xf…

金山云Q2调整后EBITDA率提升至3.2% 高质量发展驱动经营质效双增

8月20日&#xff0c;金山云公布了2024年第二季度业绩。 季度内&#xff0c;金山云整体业绩延续向好态势&#xff0c;实现收入规模、盈利能力、经营现金流的联动共赢。财报显示&#xff0c;金山云Q2营收18.9亿元&#xff0c;公有云实现收入12.3亿元&#xff0c;行业云实现收入6…

The Sandbox 新提案: 2024 年亚洲和拉丁美洲区块链活动预算

理事会建议&#xff1a; 积极 &#x1f642; 内容 此提案请求为2024年第四季度&#xff0c;The Sandbox 在东南亚和拉丁美洲的主要区块链活动中的激活分配 94,500 美元的 SAND 倡议预算。&#xff08;具体活动列表见下方活动描述&#xff09; 原因 区域团队希望在这些现场活…

国际校企合作|深信服、常州信息职业技术学院、马来西亚汽车工业大学三方国际化人才培养合作签约仪式圆满成功

2024年8月19日&#xff0c;深信服科技股份有限公司与常州信息职业技术学院、马来西亚汽车工业大学正式签署了具有里程碑意义的国际校企合作协议。此次签约不仅是“教随产出、校企同行”理念的一次成功实践&#xff0c;更是中马两国友谊与合作的象征。 常州信息职业技术学院党委…

面试题目:(4)给表达式添加运算符

目录 题目 代码 思路解析 例子 题目 题目 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target &#xff0c;在 num 的数字之间添加 二元 运算符&#xff08;不是一元&#xff09;、- 或 * &#xff0c;返回 所有能够得到 target 的表达式。1 < num.length &…