汉明码奇偶校验矩阵理解

news2024/10/7 16:22:41
首先看  汉明码
一、矩阵解释 单bit纠正( SEC,single  error correction )
以数据位为8位(m)为例,编码位数为r,2^r>=m+r+1
r最小为4
编码后位数为4+8=12位
编码位为p1,p2 ,p3, p4
p1掌控:d1 d2 d4 d5 d7,分别对应位置是:11,101,111,1001,1011(也就是位置的二进制编码,第一位为1的,注意p1由其掌控的数据为求取得到)
p2掌控:d1 d3 d4 d6 d7,分别对应位置是:   11,110,111,1010,1011(也就是位置的二进制编码,第二位为1的)
p3:... :d2 d3 d4 d8(第三位为1的) 
p4:....:   d5 d6 d7 d8(第四位为1的)
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
数据为和编码为标志
p1
p2
d1
p3
d2
d3
d4
p4
d5
d6
d7
d8
p1
1
1
1
1
1
1
p2
1
1
1
1
1
1
p3
1
1
1
1
1
p4
1
1
1
1
1
根据上表可以得到奇偶校验矩阵H:
H=
1 0 1 0 1 0 1 0 1 0 1 0
0 1 1 0 0 1 1 0 0 1 1 0
0 0 0 1 1 1 1 0 0 0 0 1
0 0 0 0 0 0 0 1 1 1 1 1
比如数据为1001_1100, 按照奇校验求取得到下表(就是保证所有位(包括校验位p)的1的个数是奇数)。
p1=^(10110)+1= 0(因为是奇数所以p1=0,这里1+1不进位,所以等于0)
p2=^(10110) +1 = 0
p3=^(00010)+1  = 0
p4=^(1100)+1=1 (因为是偶数所以p4=1)
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
数据为和编码为标志
p1
p2
d1
p3
d2
d3
d4
p4
d5
d6
d7
d8
0
0
1
0
0
0
1
1
1
1
0
0
p1
1
1
1
1
1
1
p2
1
1
1
1
1
1
p3
1
1
1
1
1
p4
1
1
1
1
1
编码后数据流是:0 0 1 0 0 0 1 1 1 1 0 0
如果对方接受到的数据是0 0 1 0 0 0 1 1 1 1 0 0那么数据流和奇偶校验矩阵的乘积 矩阵 相乘并模2加法应该是一个全1矩阵,表示没有位置出错。
理解: 实际上就是对p和p所掌控的数据位重新取异或。(因为编码使,p和p所掌控的数据是按照奇校验计算的,所以对这些位重新取异或后值应该为1)
模二加法的话是1+1=0,1+0=1不进位
数据流是:
0 0 1 0 0 0 1 1 1 1 0 0
乘法:
1 0 1 0 1 0 1 0 1 0 1 0              0    1
0 1 1 0 0 1 1 0 0 1 1 0        *     0    1 
0 0 0 1 1 1 1 0 0 0 0 1              1  = 1   
0 0 0 0 0 0 0 1 1 1 1 1              0    1  
                                                 0
                                                 0
                                                 1
                                                 1
                                                 1
                                                 1
                                                 0
                                                 0
A、如果接收到的单bit出错,比如第5位(d2):0 0 1 0 1 0 1 1 1 1 0 0
数据流是:
0 0 1 0 1 0 1 1 1 1 0 0
矩阵乘法:
1 0 1 0 1 0 1 0 1 0 1 0              0    0  p1'
0 1 1 0 0 1 1 0 0 1 1 0        *     0    1  p2'
0 0 0 1 1 1 1 0 0 0 0 1              1  = 0  p3' 
0 0 0 0 0 0 0 1 1 1 1 1              0    1  p4'
                                                 1
                                                 0
                                                 1
                                                 1
                                                 1
                                                 1
                                                 0
                                                 0
计算出来结果不是全1的,所以存在错误,如果是单bit出错,计算结果0101=5就表示出错位置,但是高于1bit的话实际上也会爆出来是出错,只是没有办法确认是哪几位。
p1'和p3'与值为0说明奇校验没有过。
图解释,如下,d2出错,从图中可以很形象的确认出p1'和p3'会报错:
B、如果接收到的两bit出现错误
     原始编码后数据:                                 0 0 1 0 0 0 1 1 1 1 0 0
     如果第5位(d2)和第11位(d7)位出错:0 0 1 0 1 0 1 1 1 1 1 0
数据流是:
0 0 1 0 1 0 1 1 1 1 1 0
矩阵乘法:
1 0 1 0 1 0 1 0 1 0 1 0              0    1  p1'
0 1 1 0 0 1 1 0 0 1 1 0        *     0    0  p2'
0 0 0 1 1 1 1 0 0 0 0 1              1  = 0  p3'
0 0 0 0 0 0 0 1 1 1 1 1              0    0  p4'
                                                 1
                                                 0
                                                 1
                                                 1
                                                 1
                                                 1
                                                 1
                                                 0
从计算结果来看p2',p3',p4'计算出来有错误,奇校验没有过,但是p1'是正确的。1000=8没法确认出错的bit。
如下图所示,因为d2和d7都在p1中所以,求异或后抵消了,所以p1'是计算出来正确的。由于d2出错,所以p3'报错,由于d7出错,所以p4'和p2'报错。从图上也知道没法确认出错bit,也没有办法确认出错bit数量。也没法纠正。
二、矩阵解释 单bit纠正,两bit检测( SECDED,single  error correction and  double error detection)(3bit err not work)
实现这种校验,需要额外增加一个校验位  global parity check bit,称为g
依然按照上面两种情况举例。
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
数据为和编码为标志
p1
p2
d1
p3
d2
d3
d4
p4
d5
d6
d7
d8
g
0
0
1
0
0
0
1
1
1
1
0
0
0
p1
1
1
1
1
1
1
p2
1
1
1
1
1
1
p3
1
1
1
1
1
p4
1
1
1
1
1
g
1
1
1
1
1
1
1
1
1
1
1
1
g的话是所有为校验位:^(0 0 1 0 0 0 1 1 1 1 0 0)+1=0
编码后数据流是:                                          0 0 1 0 0 0 1 1 1 1 0 0 0
A、如果接收到的单bit出错,比如第5位(d2):0 0 1 0 1 0 1 1 1 1 0 0 0
数据流是:
0 0 1 0 1 0 1 1 1 1 0 0 0 
矩阵乘法:
1 0 1 0 1 0 1 0 1 0 1 0 0            0    0  p1'
0 1 1 0 0 1 1 0 0 1 1 0 0       *    0    1  p2'
0 0 0 1 1 1 1 0 0 0 0 1 0            1  = 0  p3' 
0 0 0 0 0 0 0 1 1 1 1 1 0            0    1  p4'
1 1 1 1 1 1 1 1 1 1 1 1 1            1    0  g' 
                                                  0
                                                  1
                                                  1
                                                  1
                                                  1
                                                  0
                                                  0
                                                  0
计算出来结果不是全1的,所以存在错误,如果是单bit出错(注意这里用的如果),计算结果0101=5就表示出错位置。由于g'不等于1所以整体上来说奇偶校验没有过存在错误的bit。
而且p1'和p3'也出错了。如果是单bit出错所以是可以找到对应bit并纠正的。(注意这里是如果)
整体出错,分量也出错,那么是单bit出错( 前提是没有超过3bit出错
图解释,如下,d2出错,从图中可以很形象的确认出p1'和p3'会报错,g也会报错:
B、如果接收到的两bit出现错误
     原始编码后数据:                                 0 0 1 0 0 0 1 1 1 1 0 0 0
     如果第5位(d2)和第11位(d7)位出错:0 0 1 0 1 0 1 1 1 1 1 0 0
数据流是:
0 0 1 0 1 0 1 1 1 1 1 0 0
矩阵乘法:
1 0 1 0 1 0 1 0 1 0 1 0 0            0    1  p1'
0 1 1 0 0 1 1 0 0 1 1 0 0       *    0    0  p2'
0 0 0 1 1 1 1 0 0 0 0 1 0            1  = 0  p3'
0 0 0 0 0 0 0 1 1 1 1 1 0            0    0  p4'
1 1 1 1 1 1 1 1 1 1 1 1 1            1    1  g'
                                                  0
                                                  1
                                                  1
                                                  1
                                                  1
                                                  1
                                                  0
从计算结果来看p2',p3',p4'计算出来有错误,但是p1’和g'是正确的。1000=8没法确认出错的bit。
如下图所示,因为d2和d7都在p1中所以,求异或后抵消了,所以p1'是计算出来正确的(g'也是一样的)。由于d2出错,所以p3'报错,由于d7出错,所以p4'和p2'报错。从图上也知道没法确认出错bit,也没法纠正。由于 整体是正确的,但是分量有错误,所以判断出事两个bit出错了,但是没法纠正也没法确认出错bit。( 前提是没有超过3bit出错
C.如果接收到的是3 bits错误或以上,SECDED没法work。
     原始编码后数据:                                                      0 0 1 0 0 0 1 1 1 1 0 0 0
     如果第5位(d2)和第11位(d7)以及第10位(d6)出错:0 0 1 0 1 0 1 1 1 0 1 0 0
数据流是:
0 0 1 0 1 0 1 1 1 0 1 0 0
矩阵乘法:
1 0 1 0 1 0 1 0 1 0 1 0 0            0    1  p1'
0 1 1 0 0 1 1 0 0 1 1 0 0       *    0    1  p2'
0 0 0 1 1 1 1 0 0 0 0 1 0            1  = 0  p3'
0 0 0 0 0 0 0 1 1 1 1 1 0            0    1  p4'
1 1 1 1 1 1 1 1 1 1 1 1 1            1    0  g'
                                                  0
                                                  1
                                                  1
                                                  1
                                                  1
                                                  1
                                                  0
从计算结果来看p3'计算出来有错误,但是p1’,p2’,p4'和g'是正确的。1101=13没法确认出错的bit。
如下图所示,因为d2和d7都在p1中所以,求异或后抵消了,所以p1'是计算出来正确的。由于d2出错,所以p3'报错,由于d7和d6出错,所以p4'和p2'校验正确。
由于有三个bit错误没法抵消,所以g'也是奇校验没有通过。
由于整体是错误的,分量也有错误,从下图也知道没法确认出错bit数,也没法纠正。
所以超过三个bits出错的话没法work。超过3个bit(包括三个)没法区分是哪个bit出错,出错了几个bit。但是能分出是奇数个还是偶数个。
整体校验通过,分量没有通过那么是偶数个bit出错。
整体校验失败,分量校验也失败的话那么是奇数个bit出错。
从上面分析可以得出另一个结论是,实际上划分p1,p2,p3,p4所掌控的数据,并不一定要按照上面的规则去划分,按照图像解释只要能保证单个bit出错能定位到该bit就可以。
也就是校验矩阵可以采用其
三.生成码和校验码(G and  H
A.校验矩阵
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
数据为和编码为标志
p1
p2
d1
p3
d2
d3
d4
p4
d5
d6
d7
d8
0
0
1
0
0
0
1
1
1
1
0
0
p1
1
1
1
1
1
1
p2
1
1
1
1
1
1
p3
1
1
1
1
1
p4
1
1
1
1
1
实际上校验码矩阵H中,是可以将p和d位置分开来的。
原来的校验矩阵H是上表中的红色以及框起来的部分组成的,形式如下
1 0 1 0 1 0 1 0 1 0 1 0             
0 1 1 0 0 1 1 0 0 1 1 0        
0 0 0 1 1 1 1 0 0 0 0 1             
0 0 0 0 0 0 0 1 1 1 1 1            
如果将数据和校验位分开不做穿插排列的话(原始数据还是1001_1100),可排成如下表格:
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
100
1000
101
110
111
1001
1010
1011
1100
1101
数据为和编码为标志
p1
p2
p3
p4
d1
d2
d3
d4
d5
d6
d7
d8
0
0
0
1
1
0
0
1
1
1
0
0
p1(位置编号第一位为1的数据)
1
1
1
1
1
1
p2(位置编号第二位为1的数据)
1
1
1
1
1
p3(位置编号第三位为1的数据)
1
1
1
1
1
1
p4(位置编号第4位为1的数据)
1
1
1
1
1
1
(注意表格中:位置二进制编码也往前提了)
那么现在的校验矩阵H就是两部分组成,一部分是校验位的单位阵(eye,上表黄色框部分),一部分是数据位的归属阵(上表红色框部分):
p1 p2 p3 p4 d1 d2 d3 d4 d5 d6 d7 d8
1 0 0 0     1 0 1 1 0 1 0 1 
0 1 0 0     0 1 1 0 1 1 0 0
0 0 1 0     1 1 1 0 0 0 1 1
0 0 0 1     0 0 0 1 1 1 1 1 (4*12)
生成矩阵G也是有两部分组成,一个是数据位归属阵的转置阵( 行换成同序数的列),一部分是数据的单位阵(eye):
p1 p2 p3 p4 d1 d2 d3 d4 d5 d6 d7 d8
1 0 1 0     1 0 0 0 0 0 0 0   
0 1 1 0     0 1 0 0 0 0 0 0
1 1 1 0     0 0 1 0 0 0 0 0
1 0 0 1     0 0 0 1 0 0 0 0
0 1 0 1     0 0 0 0 1 0 0 0
1 1 0 1     0 0 0 0 0 1 0 0
0 0 1 1     0 0 0 0 0 0 1 0
1 0 1 1     0 0 0 0 0 0 0 1   (8*12)
B.生成矩阵
生成矩阵G可以用于在编码器中生成编码后打代码。
公式是c= mG
比如上面源码m是 1001_1100,矩阵乘法后,取模二加法再+1(奇校验):
mG=
1 0 0 1 1 1 0 0 (1*8)* 
1    1 0 1 0 1 0 0 0 0 0 0 0   
0    0 1 1 0 0 1 0 0 0 0 0 0
0    1 1 1 0 0 0 1 0 0 0 0 0
1    1 0 0 1 0 0 0 1 0 0 0 0
1    0 1 0 1 0 0 0 0 1 0 0 0
1    1 1 0 1 0 0 0 0 0 1 0 0
0    0 0 1 1 0 0 0 0 0 0 1 0
0    1 0 1 1 0 0 0 0 0 0 0 1   (8*12)= 0 1 0 0 1 0 0 1 1 1 0 0(1*12)
方便看着计算例了这列)                 p1 p2 p3 p4 d1 d2 d3 d4 d5 d6 d7 d8
最终求出的矩阵(1*12)就是编码后的数据,前四位是校验位,后面8位是原数据没变。
p1=^(d1d3d5d7)+1=^(1010)+1=1
p2=^(d2d3d6d7)+1=^(0010)+1=0
C.校验
奇校验情况下如果收到的码是正确的,那么可H和收到的数据相乘应该为全为一(取模二加法):
接收到的正确的码:
0 1 0 0 1 0 0 1 1 1 0 0
校验:
1 0 0 0 1 0 1 1 0 1 0 1
0 1 0 0 0 1 1 0 1 1 0 0         *
0 0 1 0 1 1 1 0 0 0 1 1
0 0 0 1 0 0 0 1 1 1 1 1 (4*12)   
                                       
0           
1
0
0
1           1
0     =    1  
0           1
1           1
1
1
0
0(12*1)                                                                         
只要生成矩阵和校验矩阵能够对应上,就能进行编码和校验,并不一定说要p1使用第一位为1的位置,p2使用第二位为1的位置(我也可以p1使用第一位为0,p2第二位为0的位置)
四.任意生成矩阵和校验矩阵(不完全正确自己理解的总结)
三中例子,4位的矫正位,可以表示16个错误位。(还是奇校验),可以写成如下错码表
位置编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
位置二进制编码
1
10
100
1000
101
110
111
1001
1010
1011
1100
1101
错码位
p1
p2
p3
p4
d1
d2
d3
d4
d5
d6
d7
d8
p1'p2'p3'p4'
0111
1011
1101
1110
0101
1001
0001
0110
1010
0010
1100
0100
图像解释:
0111表示p1'计算出来不正确,所以错误位是p1 (表示p1属于p1)
1001表示p2'p3'计算出来不正确,所以错误位是d2(1001表示d2属于p2和p3)
从这个错码表可以知道,实际上可以通过错码表来生成校验和生成矩阵,而且错码表示可以任意的,只需要保证每一个错码表示唯一一个可能的错位。这样就可以在只有一个bit出错时可以纠正。
五.代码
编码器这个编码器使用的是SECDED,且也不是按照 p 1使用第一位为1的位置,p2使用第二位为1的位置来计算的,可能使用错码表思路。
解码器,并进行纠正。
此代码是偶校验的,校验原理是:校验位和数据位的异或结果s[i]需要是0,如果不是0说明有错误。在认为只有小于3bit出错的情况下,此算法的工作会认为:
s中存在bit为1,那么说明有错误,ecc_err_detected拉高
如果s异或结果为1,那么说明有一bit错误, ecc_err_detected和 ecc_err_detected_s都会拉高
s中存在bit为1,那么说明有错误,ecc_err_detected拉高,且 s异或结果为0,那么说明不是1 bit错误, ecc_err_detected和 ecc_err_detected_d都会拉高
超过3个bit(包括3bit)后此代码不能纠正也不能判断出错位数,只能判断出错位数的奇偶性。
此代码的纠正原理是:e[0]表示d[0]所在属的三个校验位c[0],c[2],c[3]的校验结果s[0],s[2],s[3]的取&,如果为1表示三个校验位都出错,(按照上面图形解释思想)同时属于这三个校验位的只有d[0],那么就表示d[0]出错了。最后矫正时d[0]^e[0]就是,如果d[0]出错,出错后为0,那么0^1=1,如果出错后为1,那么1^1=0.这样就可以矫正。

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

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

相关文章

数据分析真的很火吗?真的有很多企业需要这样的岗位吗?求大佬指点。

“我是去年毕业的,因为疫情影响,整个就业环境都很不好,很多企业都裁员了。加上疫情三年基本都是玩过去,也没啥一技之长,就业就更难了。听说现在做数据分析的人很多,我身边的朋友都在转行做数据分析。 其实…

【2023/05/15】Rust

Hello!大家好,我是霜淮子,2023倒计时第10天。 Share Rest belongs to the work as the eyelids to the eyes. 译文: 休息与工作的关系,正如眼睑与眼睛的关系。 Man is a born child,his power is the power of gro…

华为od题库汇总分享

​ 前言 最近有很多群友问塔子哥华为最新OD题库在哪里可以找。我索性就写篇文章介绍一下吧~。这里塔子哥还是要说一下,大家想进华为od还是要重视题库。因为根据无数群友,网友的反映。华为od就是从题库里抽题,不会有新题。只是每个季度题库会…

使用mapbox+turf.js完成迁徙图,流向图教程

以前对于迁徙图流向图这样的需求大多都是采用echarts这样的图标组件库做的。这篇文章跟大家分享一下如何使用webgis的技术方式实现迁徙图,流向图这样的专题地图。 首先我们要把思路捋清楚,迁徙图表示的是从一个点出发向多个点均有流向(这个流向用线条表示)或者是从多个地方…

利用GPU并行计算beta-NTI,大幅减少群落构建计算时间

1 先说效果 18个样本,抽平到8500条序列,4344个OTUs,计算beta-NTI共花费时间如下。如果更好的显卡,更大的数据量,节约的时间应该更加可观。 GPU(GTX1050):1分20秒 iCAMP包 的bNTIn.p(…

你可能不需要「那么」担心,人工智能对你的工作造成威胁

大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加:keeepdance,备注:chatgpt,拉你进群。 上周,AI似乎成为全互联网的焦点了。谷歌在2023IO开发者大会上&#xff0c…

MySQL之B+树索引的使用

前言 本文章收录在MySQL性能优化原理实战专栏,点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的:从根儿上理解MySQL》 我们上一篇文章详细的了InnoDB存储引擎的B树索引,我们必须知道下边这些结论: 每个…

如何快速入门网络安全?

前言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 学习网…

企业级信息系统开发讲课笔记4.2 Spring Boot项目单元测试、热部署与原理分析

文章目录 零、学习目标一、Spring Boot单元测试(一)Spring Boot单元测试概述(二)对项目HelloWorld01进行单元测试1、修改pom.xml文件,添加测试依赖启动器和单元测试2、创建测试类与测试方法 (三&#xff09…

CMAKE介绍和使用(Windows平台)

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。 Windows平台 cmake工具的下载 cmake工具下载官网: Download | CMake 下载压缩包后解压,解压后的bin文件路径加到电脑系统环境…

ANR基础篇 - 相关系统知识简介

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、CPU相关知识1.CPU核心架构大小核架构 2.绑核3.锁频4.CPU状态 二、线程状态1.R…

自学黑客(网络安全)如何入门?收藏这篇就够了

前言: 趁着今天下班,我花了几个小时整理了下,非常不易,希望大家可以点赞收藏支持一波,谢谢。 我的经历: 我19年毕业,大学专业是物联网工程,我相信很多人在象牙塔里都很迷茫&#x…

阿里18k的外包能去吗?

有挺多测试员曾在BAT、网易这些大厂做过外包,想必大家也是非常关心此类问题,我就想介绍下“什么是外包?”,“外包公司的现状”,就“为什么这么多人鄙视外包测试岗?”、”阿里18K的外包测试岗能去吗&#xf…

适配器模式知多少

目录 目标 概述 实战 目标 熟悉适配器设计模式,了解适配器设计模式的使用场景、具体实现。 概述 一、结构型设计模式 结构型设计模式是设计模式的一种类型。它的关注点在于如何将对象和类组合成更大的结构。较为常见的结构型设计模式如:装饰者设计…

开源物联网平台和智能家居平台

开源物联网平台和智能家居平台 目 录 1、开源智能家居平台(家庭自动化工具) 1. Home Assistant2. openHAB3. Domoticz4. Calaos2、开源物联网平台 1. Thingsboard2. Kaa IoT Platform3. SiteWhere4. JetLinks5. Thinger.io 做者:晨星1032 1…

把握数据核心,A/B测试成就高效邮件营销新纪元

电子邮件营销是现代营销战略中的重要组成部分。但是收件人每天要收到大量的邮件,而确保你的电子邮件有效和吸引人是一件具有挑战性的事情。想要克服这个问题,提高电子邮件营销活动有效性是一个不错的方法。具体措施就是进行A/B测试!在本文中&…

啥是CTF?新手如何入门CTF?

CTF是啥 CTF 是 Capture The Flag 的简称,中文咱们叫夺旗赛,其本意是西方的一种传统运动。在比赛上两军会互相争夺旗帜,当有一方的旗帜已被敌军夺取,就代表了那一方的战败。在信息安全领域的 CTF 是说,通过各种攻击手…

NIO简单入门笔记【一】 三大组件

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏 JAVA专栏 📧如果文章知识点有错误的地方,请指正&…

Python 基础(十三):函数

❤️ 博客主页:水滴技术 🌸 订阅专栏:Python 入门核心技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 文章目录 一、创建函数二、调用函数三、向函数传递参数3.1、形参和实参3.2、多参函数3.3、参数的…

【C生万物】 指针和数组笔试题汇总 (上)

欢迎来到 Claffic 的博客 💞💞💞 👉 专栏:《C生万物 | 先来学C》👈 前言: 在学习完初级和进级的指针之后,为了检验掌握程度,这里出一期指…