【电路笔记 通信】8B/10B编码 高速数据传输的串行数据编码技术 论文第三部分 The 8B/10B coding map
0810逻辑总览 The 8B/10B coding map
- 图 1 展示了一个通信适配器接口,它由八条数据线 A、B、C、D、E、F、G、H(注意:使用大写字母表示)、一条控制线 K,以及一条以字节速率运行的时钟线 BYTECLK 组成。控制线 K 用于指示 A 到 H 这些线是表示数据信息还是控制信息。
-
为了实现编码目标,每个输入字节被划分为两个子块:
-
- 五条二进制数据线 ABCDE 被编码成六条二进制数据线 abcdei(注意:使用小写字母表示),遵循 5B/6B 逻辑函数 和 失衡控制 的指示。
-
- 同样,三个位 FGH 被编码成 fghj。
-
- 注:数据块的失衡是指该块中 1 和 0 的数量之差;正失衡和 负失衡分别表示 1 和 0 的过剩。对于 6B = abcdei 和 4B = fghj 子块,允许的失衡值为 0、+2 或 -2。
-
- 注:编码规则要求非零失衡块的极性必须交替。同时,6B 子块和 4B 子块之间不做区分;也就是说,在 6B 块中多出的两个 1 可以通过在 6B 或 4B 块中多出的两个 0 来补偿,反之亦然。
-
非零失衡的编码点以互补对的形式分配给单一的源数据点。编码函数生成其中一个编码点;如果该编码点违反了交替极性规则,则在编码切换中会对整个子块进行反转。6B 编码器中失衡和极性的确定之后,会进行相应的 4B 编码器操作,接着将运行失衡参数传递给下一字节的编码。大多数编码后的子块是零失衡,并且在大多数情况下,它们与运行失衡无关;即,它们没有互补。
-
这十条编码后的数据线 abcdeifghj 通常与串行接口;其中,a 位必须首先传输,而 j 位最后传输。
编码定义
8B/10B 编码通过将输入字节的 ABCDE 位 编码到 5B/6B 编码器中的数据线 abcdei 来完成,遵循 表 3 中的编码计划和规则;而 FGH 位 则在 3B/4B 编码器中编码为数据线 fghj,如 表 4 所示。
5B/6B encoding
-
表 3 中的第一列,标题为 “Name”,列出了 ABCDE 输入线 的 32 个十进制等效值,假设 A 是最低有效位,E 是最高有效位。对于常规数据(D.x),K 线必须保持为 0;为了编码特殊字符,K 线必须为 1;少数编码点可以是特殊字符的一部分,这些特殊字符可以被识别为非数据字符;这些编码点被命名为 D/K.x 或 K.x,并且在 K 列中标有 x。
-
在 “classification” 列中,L04 表示在 ABCD 中没有 1,只有四个 0;L13 表示在 ABCD 中有一个 1 和三个 0,以此类推。字母 L 表示该逻辑函数或分类是 5B/6B 编码器的一部分。类似的功能标记为 P,用于解码(见表 6)。符号右侧的重音符号用于表示互补;例如 E’ 表示 E 的互补;点( • )表示逻辑与(AND)运算。
-
在左侧 “abcdei” 标题下的列中,列出了所有直接由 5B/6B 逻辑函数 从 ABCDE 输入 生成的编码点。编码表的设计目标是使通过编码器时,必须改变的比特数量最小,并且所需的改变可以分类为几个适用于多个编码点的组(table was designed so that a minimal number of bits must be changed on passing through the encoder, and so that the changes which are required can be classified into a few groups applicable to several code points )。表 3 中所有需要 5B/6B 逻辑函数 操作的比特(除去整个子块的互补,(other than complementation of the complete subblock)均以粗体显示,假设添加了额外的数字 “i”,其正常值为 0。
-
当输入满足左侧 “bit encoding” 中列出的逻辑条件时(就是classification列的左下侧那列),粗体的比特将更改为 左侧 “abcdei” 列中所示的值;例如,如果 L04 条件成立,则 b 和 c 位被强制为 1,如 D.O 和 D.16 所示。在 D.16(104 • E)和 D.31(L40 • E)的 “bit encoding” 列中的第二个条目适用于 (•-digit)。此外,对于没有分类条目的行,ABCDE 位将不变地转换为 abcde,并且新增的 bit 为 0。
-
表 3 最右侧的 “abcdei alternate” 列显示了那些具有交替编码点的 ABCDE 输入 的互补。每个单独的 6B(4B同理)子块会根据失衡规则进行互补。在所有子块边界处,运行的失衡 要么是 +1,要么是 -1,绝不会是 0(见图 2)。
-
“D—1” 列表示进入右侧相邻子块所需的运行失衡(running disparity)。“D - 1” 列中的 x 表示 (D - 1) 可以是 +1 或 -1。
在此编码中,子块边界处的运行失衡极性与最近的 非零失衡块 的极性相同。 -
如表 3 中的第一行 D.O :
如果运行失衡匹配 (D - 1) = +,则编码器的输出将是 011000;否则,整个子块将被互补为 100111。 -
“DO” 列表示左侧编码子块的失衡值,值为 0、+2 或 -2。表 3 和表 4 右侧的交替编码点的失衡值是左侧对应值的精确互补,因此不再显示。
-
与比特编码相似,编码器硬件直接从 ABCDE 和 K 输入 中确定子块的失衡值。根据失衡要求对编码词进行分类的相应逻辑函数显示在表 3 的单独一列中。
-
在表 3 中,D.7 行,一对零失衡的 6B 子块(111000 和 000111)被分配给单个数据点,并具有类似于适用于非零失衡子块的失衡约束。这个编码特性将最大数字和变化(DSV)从 8 降低到 6,并结合表 4 中 3B/4B 编码器 对 D/K.X.3(1100 和 0011)的类似规则,消除了所有 运行长度为 6 的序列,以及大多数 运行长度为 5 的序列。
-
将一对互补的零失衡子块分配给单个编码点的技术,也统一应用于所有作为特殊字符一部分的 4B 子块,如表 4 和表 5 中对于 K.28.1、K.28.2、K.28.3、K.28.5 和 K.28.6 所示。
3B/4B encoding
-
Table 4 follows the conventions and notations of Table 3. In Table 4 some lines have two entries in the
column for the classification of disparity; the left classification refers to the entry disparity D - I, and the right one to DO. -
D.x.P7(主7)和 D/K.y.A7(备用7)的编码需要解释。引入 D/K.y.A7 编码点是为了消除 eifgh 中的运行长度为 5 的序列。每当需要时,A7 编码会替换 P7 编码。
-
请注意,每当 K = 1 时,FGH = 111 始终被转换为 fghi = 0111 01 或其互补。
-
D/K.y.A7 编码可以在 ghjab 位的尾部字符边界生成一个 **运行长度 (run length,RL) ** 为5的序列;然而,这个序列之前只有 1 的运行长度,在 f 位上,只有一个例外。如果前导字符是特殊字符 K.28.7,那么尾部字符边界的 RL 5 序列之前会有另一个 RL 5 序列出现在 cdeif 中。有关这些区别的意义,请参见特殊字符部分。
-
K.28.1、K.28.2、K.28.5 和 K.28.6 的零失衡 4B 子块 处理方式与 D/K.x.3 类似,都是通过互补来生成具有字节同步或逗号特性的特殊字符。
Special characters
- 特殊字符在此定义为超出编码一个数据字节所需的 256 个编码点。它们通常用于建立字节同步、标记数据包的开始和结束,有时也用于信号控制功能,如 ABORT、RESET、SHUT-OFF、IDLE 和链路诊断。表 5 中显示的十二个特殊字符可以通过表 3 和表 4 中定义的编码规则生成。它们都符合一般编码约束,即最大运行长度为 5 和最大数字和变化为 6。
-
表 5 中的第一组八个特殊字符 K.28.x 可以通过观察 abcdei = 001111 或 abcdei = 110000 来识别为数据之外的字符。在数据中,我们从不出现 c = d = e = f。
-
表 5 中的第二组四个特殊字符 K.x.7 的特征是 eifghj = 101000 或 eifghj = 010111。它们与普通数据的区别在于 FGH 被编码为 0111 或 1000,在普通数据编码中则会使用 1110 或 0001。
Commas and packet delimiters 逗号和数据包分隔符
-
逗号[14] 表示正确的字节边界,并可用于即时获取或验证字节同步。为了具有实际意义,逗号序列必须是唯一的,并且必须以一致的对齐方式出现在字节边界上。在没有错误的情况下,逗号不能出现在其他任何比特位置上(无论是在字符内部还是跨字符重叠的比特中)。
在该编码中,有三个字符(K.28.1、K.28.5、K.28.7)具有逗号特性。它们在表 5 中以星号标记,并用粗体字突出显示其唯一的逗号序列。这三个字符也是最适合作为信息包起始和结束标记的分隔符。 -
该编码中的唯一逗号序列是:一个以比特 b 结尾的、长度为 2 或更长的连续相同位(RL ≥ 2)序列,紧接着是比特 cdeif 中的一个长度为 5 的连续相同位(RL = 5)序列。其中,第二个 RL=5 序列不得是另一个逗号序列中允许的 RL≥2/RL=5 模式。
换句话说,如果两个或三个这类 “RL≥2 / RL=5” 序列发生重叠时,只有第一个和第三个序列会被识别为逗号。
之所以有此规则,是因为在某些情况下,K.28.7 逗号后面可能会紧跟另一个位于字段 ghjab 的 RL=5 序列。为了避免误判,需要限制哪些序列能被识别为逗号。 -
一串连续的 K.28.7 字符会生成交替的全为 1 或全为 0 的 长度为 5 的连续位(RL 5)序列,这种模式既不利于字符同步,也不利于位时钟同步。因此,不允许出现相邻的 K.28.7 字符。
尽管有此限制,K.28.7 逗号仍常被优先使用,因为在同步状态下,任意单比特错误都不会把普通数据误解码为有效的 K.28.7 字符。
空闲序列(Idle sequence)
-
我们需要区分两类通信链路:一类是在数据包之间保持字节同步的链路,另一类则不保持字节同步。
为了便于接收端时钟获取位同步(bit synchronism),在空闲状态下,维持较高的电平跳变密度(即 0 和 1 频繁交替)是非常重要的。
因此,当数据包之间不保持字节同步时,适合使用0 和 1 交替的序列,这类序列可以通过向编码器输入 D.21.5 或 D.10.2 来生成。 -
为了实现1 和 0 的精确平衡,需要将结束时的数字不平衡值(disparity)传递到下一数据包,并且新数据包应该从偶数位编码数字之后开始。
然而,如果从奇数位编码数字开始新数据包,对噪声裕度的影响可以忽略不计,前提是:
- 数据包本身足够长(有几个字节以上),以及
- 空闲序列的运行不平衡度(running disparity)被限制在 –1、0 或 +1 之间。
这可以通过让空闲序列从一个 0
或一个 1
开始来实现,具体取决于前一个数据包结束时的不平衡情况(正或负)。详见图 2。
- 如果字节同步能够从一个数据包延续到下一个数据包,那么在两个数据包之间的间隙中填充非数据字符是有用的。
例如,连续发送 K.23.7、K.27.7 或 K.29.7 字符会在每 100 位编码数字中产生 60 个电平转换。
这些字符都能被识别为“非数据”,但仅靠这种空闲序列,接收端无法获取字节同步,除非偶尔插入一个逗号(comma)字符。
作为替代方法,发送一串连续的 K.28.5 逗号字符也可以作为空闲序列,其在一半(50%)的位上产生转换。
相关文章:
【电路笔记 通信】8B/10B编码 高速数据传输的串行数据编码技术 论文第三部分 The 8B/10B coding map
0810逻辑总览 The 8B/10B coding map 图 1 展示了一个通信适配器接口,它由八条数据线 A、B、C、D、E、F、G、H(注意:使用大写字母表示)、一条控制线 K,以及一条以字节速率运行的时钟线 BYTECLK 组成。控制线 K 用于指…...
智能化双语LaTeX系统,分阶段系统性开发技术实现路径:目标是实现语义级编译和认知增强写作,推动跨文明知识表达
智能化双语LaTeX系统,分阶段系统性开发技术实现路径(D认为W可辅助各环节开发): 第一阶段:双语LaTeX引擎升级 1. 核心架构设计 Unicode深度支持 开发新一代XeLaTeX/LuaLaTeX内核 原生支持UTF-8编码(如汉…...
【RabbitMQ】路由模式和通配符模式的具体实现
文章目录 路由模式创建队列和交换机生产者代码创建交换机声明队列绑定交换机和队列发送消息完整代码 消费者代码运行程序启动生产者启动消费者 通配符模式创建队列和交换机生产者代码创建交换机声明队列绑定交换机和队列发送消息完整代码 消费者代码运行程序启动生产者启动消费…...
【测试开发知识储备】之Jacoco(Java Code Coverage)
文章目录 Jacoco是什么Jacoco的主要功能(一)多样化覆盖率指标分析(二) 丰富的报告生成(三)实时数据收集 Jacoco的工作原理(一)字节码增强(二)测试执行与数据收…...
大二java第一面小厂(挂)
第一场: mybatis怎么防止数据转义。 Hutool用的那些你常用的方法。 springboot的常用注解。 redis的多级缓存。 websocket怎么实现的多人协作编辑功能。 怎么实现的分库分表。 mysql里面的各种操作,比如说分表怎么分,分页查询怎么用。 mybat…...
Postman接口测试
现在企业级测试分为三层测试 UI层:即与用户交互的层面 Service层:比如前后端分离的系统,测试数据的传输 Unit层:单元测试 接口 接口的概念很抽象,比如我们经常使用的USB接口,Lighting接口等传输电量数据…...
试除法判断素数优化【C语言】
代码引用 int is_prime(int num) {if (num < 1) return 0;if (num 2 || num 3) return 1;if (num % 2 0 || num % 3 0) return 0;for (int i 5; i * i < num; i 6) {if (num % i 0 || num % (i 2) 0) return 0;}return 1; } 一、数学原理 所有大于3的素数都可…...
全新开发-iVX图形化编程VS完整IDE
本文针对传统软件开发的效率与可控性矛盾,系统阐释 iVX"图形化编程 全栈 IDE" 的复合架构如何突破行业瓶颈。通过 "可视化建模 - 标准代码生成 - 独立运行" 的技术闭环,iVX 实现开发效率提升 60% 与源码完全可控的双重目标。研究揭…...
前端表格滑动滚动条太费事,做个浮动滑动插件
比如下面的表格,因为滚动条样式设计得很窄,所以用鼠标滑动起来很费劲 <template><el-table:data"tableData"style"width: 600px"height"250"><el-table-columnfixedprop"date"label"日期&…...
基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正|文献速递-深度学习医疗AI最新文献
Title 题目 Joint coil sensitivity and motion correction in parallel MRI with aself-calibrating score-based diffusion model 基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正 01 文献速递介绍 磁共振成像(MRI)…...
【CUDA】Sgemm单精度矩阵乘法(上)
目录 前言1. 简述2. 框架搭建和CPU串行实现3. baseline算法:global memory4. 优化技巧1:shared memory5. 优化技巧2:shared memory sliding window6. 优化技巧3:增加每个线程的工作量7. 优化技巧4:使用float4提高读取…...
Linux proc文件系统 内存影射
文章目录 常见的内存分配函数/proc/pid/ 目录解析 用户进程的内存空间分配算法mmap 分配大内存可能不在堆中换为 malloc 现象相同 常见的内存分配函数 malloc / calloc / realloc(来自 C 标准库) void *malloc(size_t size):分配 size 字节…...
服务器时间发生跳变导致hghac中对应主机状态频繁切换为crash或stop
文章目录 环境症状问题原因解决方案相关文档报错编码 环境 系统平台:N/A 版本:N/A 症状 集群状态: [rootbthbj-hgywsjkjq-ip28-cen76 ~]# hghactl list Cluster: highgo-ee-cluster —---------------------—---------- | Member | Ho…...
“智”造升级:金众诚如何赋能重型机械企业高效项目管理?
据悉,由中国重型机械工业协会主办的2025中国(郑州)重型机械装备展览会(以下简称:重型机械装备展),将于2025年10月15-17日在河南省郑州市中原国际会展中心隆重举办。 作为中国重型机械行业唯一的…...
反向操作:如何用AI检测工具优化自己的论文“人味”?
大家好,这里是论文写手的一线自救指南😤 在AIGC横行的今天,谁还没偷偷用过AI写几段论文内容?但问题来了:学校越来越会“识AI”了! 有的学校甚至不看重复率,只盯AIGC率报告,一句“AI…...
前端面试宝典---js垃圾回收机制
什么是垃圾回收 垃圾回收是指一种自动内存管理机制,当声明一个变量时,会在内存中开辟一块内存空间用于存放这个变量。当这个变量被使用过后,可能再也不需要它了,此时垃圾回收器会自动检测并回收这些不再使用的内存空间。垃圾回收…...
【docker】--容器管理
文章目录 容器重启--restart 参数选项及作用**对比 always 和 unless-stopped****如何查看容器的重启策略?** 容器重启 –restart 参数选项及作用 重启策略 no:不重启(默认)。on-failure:失败时重启(可限…...
如何下载和安装 Ghost Spectre Windows 11 24H2 PRO
如何下载和安装 Ghost Spectre Windows 11 24H2 PRO 我们都希望拥有一台运行速度飞快的电脑系统,但对于那些使用普通硬件的用户来说,这并不总是可能的。所以,如果你觉得你的 Windows 11 电脑运行缓慢,你并不孤单。许多用户,包括 Reddit 和 YouTube 上的技术爱好者,都在放…...
软考软件设计师中级——软件工程笔记
1.软件过程 1.1能力成熟度模型(CMM) 软件能力成熟度模型(CMM)将软件过程改进分为以下五个成熟度级别,每个级别都定义了特定的过程特征和目标: 初始级 (Initial): 软件开发过程杂乱无章…...
有关多线程
一、多线程到底是什么?简单说一说 你可以把程序想象成一台工厂。单线程就是工厂里只有一个员工,他做事情、搬产品、打包都靠一个人,他忙起来速度会慢一些。而多线程就像有多个员工同时工作,他们各自干自己的事情,整体…...
静电的起因与静电效应:技术分析与应用
杭州干扰净电子科技有限公司出品: 静电(Electrostatics)是由于电荷积累或转移引起的现象,广泛存在于日常生活和工业环境中。静电的起因主要包括接触起电、摩擦起电和感应起电,而其效应可能引发静电放电(ES…...
Python知识框架
一、Python基础语法 变量与数据类型 变量命名规则 基本类型:int, float, str, bool, None 复合类型:list, tuple, dict, set 类型转换与检查(type(), isinstance()) 运算符 算术运算符:, -, *, /, //, %, ** 比较…...
npm install 报错
1、protobufjs7.4.0 postinstall: node scripts/postinstall verbose stack Error: protobufjs7.4.0 postinstall: node scripts/postinstall 确认是否有postinstall# node scripts/postinstallCannot find module /home/rio/scripts/postinstall解决办法: # 添加…...
ESP32WIFI工具加透传
工欲善其事,必先利器其器 项目首页 - ESP-12F烧录使用软件与说明书:ESP-12F 烧录使用软件与说明书本仓库提供了ESP-12F模块的烧录使用软件及相关说明书,帮助用户快速上手并使用ESP-12F模块进行开发 - GitCode ATCWMODE 是 ESP32 系列芯片中用于设置 Wi…...
44、私有程序集与共享程序集有什么区别?
私有程序集(Private Assembly)与共享程序集(Shared Assembly)是.NET框架中程序集部署的两种不同方式,它们在部署位置、版本控制、访问权限等方面存在显著差异,以下是对二者的详细比较: 1. 部署…...
Hadoop集群故障节点隔离操作指南
一、确认故障节点状态 1.查看集群节点状态 hdfs dfsadmin -report # 显示所有DataNode状态(存活/宕机/存储利用率) 输出中标记为 Dead 或 Decommissioning 的节点为异常节点。 2.分析监控指标 通过Prometheus/Grafana监控平台检查节点资源(CPU、内存、磁盘I…...
流速仪数据处理及流量断面线绘制
1 需求描述 在实际航道测量项目中,有测量断面线流量流速的需求,得使用流速仪在现场进行测量,相关操作在之前已经写了记录。本次手册记录后期数据处理与流量线绘制,以该区域为例。 流速仪设备操作说明 2 规范要求 3 流量断面表格…...
android实现USB通讯
在 Android 上枚举 USB 设备除了使用 UsbManager.getDeviceList() 方法外,还有以下几种常见的方式: 1. 使用 USB 设备过滤器(XML 配置) 通过在 AndroidManifest.xml 中配置 USB 设备过滤器,可以让系统自动检测并通知…...
公链开发及其配套设施:钱包与区块链浏览器
公链开发及其配套设施:钱包与区块链浏览器的技术架构与生态实践 ——2025年区块链基础设施建设的核心逻辑与创新突破 一、公链开发:构建去中心化世界的基石 1. 技术架构设计的三重挑战 公链作为开放的区块链网络,需在性能、安全性与去中心…...
SVM在医疗设备故障维修服务决策中的应用:策略、技术与实践
SVM在医疗设备故障维修服务决策中的应用:策略、技术与实践 医疗设备的高可靠性、安全性及严格合规性要求,使其故障维修决策具有显著的特殊性。支持向量机(SVM)凭借小样本学习、非线性建模及高精度分类能力,可有效解决…...
如何高效集成MySQL数据到金蝶云星空
MySQL数据集成到金蝶云星空:SC采购入库-深圳天一-OK案例分享 在企业信息化建设中,数据的高效流转和准确对接是实现业务流程自动化的关键。本文将聚焦于一个具体的系统对接集成案例——“SC采购入库-深圳天一-OK”,详细探讨如何通过轻易云数据…...
NACOS基于长链接的⼀致性模型
1. 配置⼀致性模型 sdk-server ⼀致性 server 间⼀致性 Server 间同步消息接收处理轻量级实现,重试失败时,监控告警。断网:断网太久,重试任务队列爆满时,无剔除策略。 2. 服务⼀致性模型...
Docker 常见问题及其解决方案
一、安装与启动问题 1.1 安装失败 在不同操作系统上安装 Docker 时,可能会出现安装失败的情况。例如,在 Ubuntu 系统中,执行安装命令后提示依赖缺失。这通常是因为软件源配置不正确或系统缺少必要的依赖包。 解决方案: 确保系统…...
Nginx 动静分离在 ZKmall 开源商城静态资源管理中的深度优化
在 B2C 电商高并发场景下,静态资源(图片、CSS、JavaScript 等)的高效管理直接影响页面加载速度与用户体验。ZKmall开源商城通过对 Nginx 动静分离技术的深度优化,将静态资源响应速度提升 65%,带宽成本降低 40%…...
Lighthouse 自定义审计
以下是关于 Lighthouse 自定义审计的基本知识点总结: 一、Lighthouse 自定义审计核心概念 1. 审计机制架构 #mermaid-svg-lzu9WEel4gUome5N {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lzu9WEel4gUome5N .erro…...
龙虎榜——20250514
上证日线收阳线,大盘股相对强势,整体跌多涨少,量能较昨日放大,大金融发力,但总体处于日线上涨末端,注意风险。 深证日线冲高回落,触及前期压力位,量能未放大,总体处于日…...
基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
二分查找的边界问题
前言 二分查找(Binary Search)是一种高效的查找算法,时间复杂度为O(log n)。它适用于已排序的数组或列表。本文将详细介绍二分查找的两种常见写法:闭区间写法和左闭右开区间写法。 一、二分查找基本思想 二分查找的核心思想是"分而治之"&am…...
应用示例1:交通灯
基于FPGA的交通灯控制系统实现原理详解 目录 基于FPGA的交通灯控制系统实现原理详解一、项目简介二、数字电路与基础知识1. 交通灯系统的有限状态机(FSM)2. 数码管显示原理3. 二进制转BCD显示4. 时钟与分频三、功能需求与系统结构功能需求系统结构四、各模块设计原理说明1. 时…...
Docker 介绍与使用
Docker 文章目录 Docker介绍与虚拟机的比较启动速度占用资源 优势更容易迁移更容易维护更容易扩展 使用场景持续集成提供可伸缩的云服务搭建微服务架构 镜像与容器镜像构成(分层结构)镜像与容器的区别 安装 Docker常用命令介绍镜像相关容器相关 实战&…...
[数据结构]6. 队列-Queue
队列-Queue 1. 介绍2. 队列实现2.1 基于链表的实现2.2 基于数组的实现 3. 队列操作CreateInitializeDestoryPushPopFrontBackSizeEmpty 1. 介绍 队列(queue) 是一种遵循先入先出规则的线性数据结构。将队列头部称为“队首”,尾部称为“队尾”…...
mybatis plus (sqlserver) 根据条件来获取id最大的,或者是新增的最新的一条记录(同条件可能会有多条出现)
1、mysql的版本 limit 1 QueryWrapper<Userinfo> queryWrapper new QueryWrapper<>();queryWrapper.eq("fid", payment.getFid());return userinfoMapper.selectOne(queryWrapper.orderByDesc("id").last("limit 1")); 只要类似以…...
打卡DAY25
DAY 25 异常处理 知识点回顾: 1. 异常处理机制 2. debug过程中的各类报错 3. try-except机制 4. try-except-else-finally机制 在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深…...
【C语言指针超详解(六)】--sizeof和strlen的对比,数组和指针笔试题解析,指针运算笔试题解析
目录 一.sizeof和strlen 1.1--sizeof 1.2--strlen 1.3--sizeof和strlen的对比 二.数组和指针笔试题解析 2.1--一维数组 2.2--字符数组 2.2.1--代码1: 2.2.2--代码2: 2.2.3--代码3: 2.2.4--代码4 : 2.2.5--代码5&#…...
Java 异常处理之 BufferUnderflowException(BufferUnderflowException 概述、常见发生场景、避免策略)
一、BufferUnderflowException 概述 BufferUnderflowException 是 Java NIO 包中的一个运行时异常,是 RuntimeException 的子类 public class BufferUnderflowException extends RuntimeException {... }# 继承关系java.lang.Object-> java.lang.Throwable->…...
OpenCV人脸识别LBPH算法原理、案例解析
文章目录 前言一、LBPH 算法原理概述1、LBP 特征计算2、均匀模式与旋转不变性3、直方图统计与识别 二、环境准备1、安装依赖2、数据集结构 三、代码实现(完整代码约 150 行)1、导入库与配置2、加载数据与标签生成3、 模型训练与保存4、 实时人脸识别5、主…...
Lightpanda开源浏览器:专为 AI 和自动化而设计的无界面浏览器
一、软件介绍 文末提供程序和源码下载 Lightpanda开源浏览器:专为 AI 和自动化而设计的无界面浏览器; Javascript execution Javascript 执行Support of Web APIs (partial, WIP)支持 Web API(部分、WIP)Compatible with Pla…...
Docker 疑难杂症解决指南:从入门到进阶的全面剖析
Docker 作为容器化技术的代表,凭借其轻量级、可移植性和高效资源利用率,已成为开发、测试和部署应用的标准工具。然而,在实际使用中,用户常常会遇到镜像构建失败、容器启动异常、网络配置问题等疑难杂症。本文将从镜像构建、容器生…...
CodeBuddy Craft,我的编程搭子
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 你好,我是悟空。 背景 最近项目组事情挺多,一个人要干多个人的活,而且写…...
如何实现一个运动会计分系统?(C语言版)
一、需求分析 设计一个运动会计分系统,计分信息包括参加学校,参与项目,性别,名次个数,各个学校获得名次信息。该系统具有以下功能 数据录入: 链表或结构体数组组织数据数据报表: 依照规定的报表格式对数据打印报表数据排序: 按照要求对数据进行统计,含简单统计及综合统计…...