ChatGPT基本原理详细解说

ChatGPT基本原理详细解说

引言

在人工智能领域,自然语言处理(NLP)一直是研究的热点之一。随着技术的发展,我们见证了从简单的聊天机器人到复杂的语言模型的演变。其中,ChatGPT作为一项突破性技术,以其强大的语言理解和生成能力,引起了广泛的关注。本文将对ChatGPT的基本原理进行解说。

什么是ChatGPT?

ChatGPT(全名:Chat Generative Pre-trained Transformer)是由OpenAI开发的一种预训练语言模型,它基于Transformer架构,通过大量的文本数据进行训练,以生成连贯、自然的对话。ChatGPT不仅能够理解用户的问题,还能生成合适的回答,甚至在多轮对话中保持上下文的连贯性。3分钟视频看懂什么是ChatGPT

第一部分:自然语言处理基础

1.1 什么是自然语言处理(NLP)

定义

自然语言处理(Natural Language Processing,简称NLP)是人工智能和语言学领域的一个分支,它旨在使计算机能够理解、解释和生成人类语言。NLP的目标是缩小人类语言和计算机之间的差距,使计算机能够执行如下任务:语言翻译、情感分析、语音识别、自动摘要等。

历史

NLP的历史可以追溯到20世纪50年代,当时计算机科学家开始尝试让机器理解和生成自然语言。早期的尝试包括机器翻译的实验,如1954年的Georgetown-IBM实验。然而,由于当时技术的限制,这些早期的尝试并没有取得显著的成功。

随着时间的推移,NLP经历了几个重要的发展阶段:

  • 20世纪70-80年代:基于规则的系统,依赖语言学家手工编写的规则。
  • 20世纪90年代:统计方法开始兴起,NLP研究开始转向基于数据驱动的方法。
  • 21世纪初:机器学习技术的引入,特别是监督学习在NLP中的应用。
  • 2010年代:深度学习的兴起,使得NLP领域取得了革命性的进展。
NLP的主要任务和应用

NLP的主要任务包括但不限于:

  • 语言理解:让机器理解语言的含义,包括语法、语义和语境。
  • 语言生成:生成自然的语言文本,用于聊天机器人、自动文摘等。
  • 信息抽取:从文本中提取关键信息,如命名实体识别、关系抽取等。
  • 机器翻译:将一种语言的文本翻译成另一种语言。
  • 情感分析:判断文本所表达的情感倾向,如正面、负面或中性。

NLP的应用非常广泛,包括:

  • 搜索引擎:通过理解用户的查询意图,提供相关的搜索结果。
  • 推荐系统:分析用户评论和反馈,推荐个性化的内容。
  • 社交媒体分析:分析社交媒体上的文本数据,了解公众情绪和趋势。
  • 客户服务:自动回答客户问题,提供24/7的在线支持。

1.2 语言模型的重要性

语言模型的作用

语言模型是NLP中的一个核心概念,它用于预测一个词序列(如句子或短语)的概率。语言模型的目的是评估一个给定的词序列在自然语言中出现的可能性。在NLP的许多任务中,语言模型都扮演着重要角色,如:

  • 文本生成:生成连贯、自然的文本。
  • 语音识别:将语音转换为文本时,语言模型可以帮助确定最可能的词序列。
  • 机器翻译:评估翻译的质量,选择最佳翻译结果。
从N-gram到深度学习模型的演进

早期的语言模型主要基于N-gram统计,即考虑一个词在给定前N-1个词的上下文中出现的概率。N-gram模型虽然在某些情况下效果不错,但存在一些局限性:

  • 数据稀疏问题:罕见词组合的概率难以估计。
  • 上下文限制:只能考虑有限的上下文,无法捕捉长距离依赖。

随着深度学习的发展,基于神经网络的语言模型开始兴起。这些模型能够更好地捕捉词与词之间的复杂关系,并且能够处理更长的上下文信息。

1.3 深度学习在NLP中的应用

神经网络基础

神经网络是一种受人脑结构启发的计算模型,由大量的节点(或称为“神经元”)组成,这些节点按层次排列。每个节点会对输入数据进行加权求和,并通过一个非线性激活函数生成输出。

RNN、LSTM和GRU在语言模型中的应用
  • 循环神经网络(RNN):RNN能够处理序列数据,并且在处理当前输入时能够考虑之前的信息。然而,标准的RNN存在梯度消失或爆炸的问题,这限制了它们在长序列上的表现。
  • 长短期记忆网络(LSTM):LSTM是RNN的一种变体,它通过引入门控机制来解决梯度消失问题,从而能够学习长距离依赖。
  • 门控循环单元(GRU):GRU是另一种RNN的变体,它简化了LSTM的结构,但仍然能够捕捉长距离依赖。

这些深度学习模型在语言模型中的应用极大地提高了NLP任务的性能,使得机器能够更好地理解和生成自然语言。

第二部分:Transformer架构

2.1 Transformer模型的诞生

论文介绍:"Attention Is All You Need"

Transformer模型是由Vaswani等人在2017年的论文《Attention Is All You Need》中首次提出的。这篇论文彻底改变了自然语言处理领域,因为它提出了一种全新的架构,这种架构不依赖于循环层(如RNNs)或卷积层,而是完全基于注意力机制来处理序列数据。

Transformer与传统序列模型的对比

与传统的序列模型相比,Transformer模型具有以下优势:

  • 并行化处理:由于Transformer不依赖于序列的循环处理,它可以并行处理整个序列,从而加快训练速度。
  • 长距离依赖捕捉:通过自注意力机制,Transformer能够捕捉序列中任意两个位置之间的依赖关系,无论它们之间的距离有多远。
  • 可扩展性:Transformer模型的架构易于扩展,可以通过增加层数或注意力头来提高模型的复杂度和性能。

2.2 自注意力机制

自注意力机制的工作原理

自注意力机制的核心思想是,序列中的每个元素都与其他所有元素相关联,并且这种关联的强度是由它们的相对位置和内容决定的。自注意力机制通过以下步骤实现:

  1. 查询(Query)、键(Key)、值(Value)的计算:对于序列中的每个元素,模型会计算它的查询、键和值。
  2. 注意力分数的计算:使用查询与所有键的点积来计算注意力分数,并通过softmax函数进行归一化。
  3. 加权求和:使用归一化的注意力分数作为权重,对值进行加权求和,得到最终的输出。
多头注意力的介绍

多头注意力是一种特殊的自注意力机制,它将自注意力过程复制多次(即“头”),每个头学习不同的表示子空间。最后,将所有头的输出合并起来,以捕获更丰富的信息。这种方法使得模型能够同时关注序列的不同部分,并从多个角度理解数据。

2.3 Transformer的架构细节

编码器(Encoder)和解码器(Decoder)
  • 编码器:编码器由多个相同的层组成,每层包括两个主要的子层:多头自注意力层和前馈神经网络层。编码器的主要任务是将输入序列转换成一系列高级特征表示。
  • 解码器:解码器的结构与编码器类似,但它还包含一个额外的掩码多头自注意力层,以确保在生成序列时不会出现信息泄露。
位置编码(Positional Encoding)

由于Transformer模型本身不具备捕捉序列中元素位置信息的能力,因此需要引入位置编码。位置编码通常采用正弦和余弦函数的组合,为每个位置的每个维度提供一个唯一的编码,然后将这个编码与词嵌入相加,从而使模型能够理解单词在序列中的位置。

前馈网络(Feed-Forward Networks)

每个编码器和解码器层都包含一个前馈网络,它由两个线性变换组成,中间夹着一个非线性激活函数。前馈网络的作用是对注意力层的输出进行进一步的非线性变换,以增强模型的表达能力。

第三部分:ChatGPT模型详解

3.1 ChatGPT模型概述

模型的设计理念

ChatGPT模型是OpenAI基于其先前开发的GPT系列模型进一步发展而来,专注于对话生成和理解的高级应用。设计理念的核心是创建一个能够理解和生成自然、连贯、准确对话的AI系统。为了实现这一目标,ChatGPT采用了先进的Transformer架构,并在预训练和微调阶段进行了大量优化。

与GPT系列模型的关系

ChatGPT与GPT系列模型有着紧密的联系。GPT(Generative Pre-trained Transformer)模型是一系列预训练语言模型,它们通过在大量文本数据上进行训练,学习语言的模式和结构。ChatGPT继承了GPT的Transformer架构,并在此基础上进行了定制,使其更适合对话场景。GPT模型通常用于文本生成任务,而ChatGPT则专注于对话理解和生成。

3.2 预训练阶段

数据集的构建和处理

预训练阶段是构建强大语言模型的关键。在这个阶段,ChatGPT使用了大规模的文本数据集,这些数据可能包括书籍、文章、对话记录等多种形式的文本。数据集需要经过清洗和预处理,以确保其质量和一致性。预处理步骤通常包括分词、去除停用词、构建词汇表等。

预训练任务:Masked Language Model(MLM)和Next Sentence Prediction(NSP)
  • Masked Language Model:MLM是一种遮蔽语言模型任务,其中输入序列中的一些词会被随机遮蔽(例如,用特殊的[MASK]标记替换),模型需要预测这些遮蔽词。这种方法使得模型学会根据上下文来推断词义,增强了其理解能力。
  • Next Sentence Prediction:NSP任务旨在让模型预测两个句子是否是顺序出现的。这个任务有助于模型理解句子之间的逻辑关系和连贯性,对于对话系统来说尤其重要。

3.3 微调阶段

微调的目的和方法

微调是将预训练模型调整到特定任务的过程。ChatGPT在预训练阶段学习到了通用的语言表示,但在实际应用中,它需要针对特定的对话场景进行优化。微调通过在特定任务的数据集上进行额外的训练来实现,这有助于模型更好地适应目标任务。

特定任务的数据集和训练策略

微调阶段使用的数据集通常与目标任务紧密相关。例如,如果目标是构建一个客户服务聊天机器人,那么数据集可能包含客户与客服之间的对话记录。训练策略包括选择合适的损失函数、优化算法和调整超参数等。

3.4 对话管理

上下文理解

在对话中,理解上下文至关重要。ChatGPT通过维护对话历史来实现上下文理解,这使得它能够在生成回答时考虑之前的对话内容。上下文信息通常存储在模型的隐藏状态中,这些状态会随着对话的进行而更新。

意图识别

意图识别是对话系统中的一个关键功能,它涉及理解用户输入的目的或需求。ChatGPT使用模式匹配、分类算法或更高级的深度学习技术来识别用户的意图,并据此生成适当的响应。

多轮对话的连贯性

保持对话的连贯性是对话系统面临的一个重要挑战。ChatGPT通过使用Transformer架构中的注意力机制来实现这一点。注意力机制允许模型在生成每个回复时,都考虑到对话中的所有相关信息,从而生成连贯且相关的回答。

第四部分:技术细节与实现

4.1 模型参数和超参数

模型大小和参数数量

ChatGPT模型的大小通常以其参数数量来衡量,即模型中所有权重和偏置的总数。GPT系列模型的参数量从数百万到数十亿不等,而ChatGPT作为GPT的衍生模型,可能拥有相似或更多的参数量。模型的大小直接影响其复杂性和能力,更大的模型通常能够捕捉更细微的语言特征,但同时也需要更多的计算资源。

超参数的选择和调整

超参数是模型训练前需要设置的参数,它们对模型的性能有重要影响。超参数包括但不限于:

  • 学习率:控制模型权重在每次迭代中更新的幅度。
  • 批大小:每次迭代中用于训练的样本数量。
  • 层数:Transformer模型中编码器和解码器的层数。
  • 注意力头数:多头注意力机制中头的数量。
  • 隐藏层维度:模型内部表示的大小。

超参数的选择通常需要通过实验和调整来完成,以找到最优的模型性能。

4.2 训练过程

数据预处理

数据预处理是训练任何机器学习模型的第一步。对于ChatGPT而言,这包括:

  • 文本清洗:去除无关字符、标点符号等。
  • 分词:将文本分割成可处理的单元,如单词或字符。
  • 构建词汇表:创建一个包含所有唯一单词的列表,并为它们分配唯一的索引。
  • 序列化:将文本转换为模型可以理解的数值序列。
损失函数和优化算法
  • 损失函数:衡量模型预测与实际值之间的差异。对于语言模型,常用的损失函数是交叉熵损失。
  • 优化算法:用于在训练过程中调整模型参数以最小化损失。常用的优化算法包括SGD、Adam等。
正则化和过拟合的处理

为了防止模型在训练数据上过拟合,可以采用以下策略:

  • Dropout:随机丢弃一些网络连接,以防止网络对训练数据过度拟合。
  • 权重衰减:在损失函数中添加一个正则项,以惩罚大的权重。
  • 早停:在验证集上的性能不再提升时停止训练。
  • 数据增强:通过改变训练数据来增加数据集的多样性。

4.3 模型评估

评估指标

评估模型性能的指标取决于具体的应用场景。常见的评估指标包括:

  • 困惑度(Perplexity):衡量语言模型预测能力的一个指标,越低表示模型越好。
  • BLEU分数:常用于机器翻译和文本生成任务,衡量生成文本与参考文本的相似度。
  • 准确率:对于分类任务,衡量模型正确预测的比例。
  • F1分数:平衡精确率和召回率的指标。
测试集的选择和评估方法
  • 测试集的选择:选择与训练集和验证集不同的数据作为测试集,以评估模型的泛化能力。
  • 评估方法:可以采用交叉验证、保留集测试等方法来评估模型性能。对于对话系统,可能还需要人工评估,以确保生成的对话自然且符合预期。

第五部分:ChatGPT的应用场景

5.1 客户服务

聊天机器人

ChatGPT可以作为聊天机器人,为客户提供即时的咨询服务。与传统的基于规则的聊天机器人不同,ChatGPT能够理解复杂的问题,并生成更加自然和准确的回答。这种聊天机器人可以用于在线零售、银行服务、旅游预订等多个行业,提高客户满意度并降低企业的人力成本。

自动回复系统

在客户服务领域,自动回复系统可以快速响应客户的常见问题,减少等待时间。ChatGPT能够根据客户的问题自动生成回复,或者提供相关信息的链接,使得客户能够快速找到所需答案。

5.2 教育领域

语言学习辅助

ChatGPT可以作为语言学习辅助工具,帮助学习者练习语法、词汇和对话技巧。它可以生成各种语言场景下的对话,提供即时反馈,帮助学习者提高语言能力。

个性化教育

在教育领域,ChatGPT可以用于创建个性化的学习体验。通过分析学生的学习习惯和能力,ChatGPT可以提供定制化的学习材料和练习,帮助学生更有效地学习。

5.3 娱乐和内容创作

创意写作

ChatGPT可以用于创意写作,帮助作者生成故事大纲、角色对话或情节发展。它能够提供灵感,帮助作者克服创作障碍。

游戏NPC对话

在游戏开发中,ChatGPT可以用于生成非玩家角色(NPC)的对话。这使得游戏世界更加真实和丰富,提供更加沉浸式的游戏体验。

5.4 企业自动化

内部问答系统

企业可以利用ChatGPT构建内部问答系统,帮助员工快速获取信息,如公司政策、流程指南等。这可以提高工作效率,减少内部沟通成本。

报告生成

ChatGPT还可以用于自动化报告生成,如市场分析报告、业务总结等。通过分析数据和信息,ChatGPT可以生成结构化和详细的报告,帮助决策者快速把握关键信息。

第六部分:挑战与未来展望

6.1 当前面临的挑战

数据偏见和伦理问题

AI模型,包括ChatGPT,可能会从训练数据中学习并复制偏见。如果训练数据包含有偏见的信息,模型生成的对话也可能带有偏见,这可能对某些群体不公平。此外,伦理问题是AI领域的一个重要议题,包括隐私保护、数据安全和机器行为的道德规范。

模型的可解释性和透明度

深度学习模型通常被认为是“黑箱”,因为它们的决策过程不透明,难以解释。这对于需要高度可靠性的应用场景尤其成问题。提高模型的可解释性,让用户理解模型是如何做出特定决策的,是当前研究的一个重要方向。

6.2 技术发展趋势

更大模型和更多数据

随着计算能力的提升和数据量的增加,未来的AI模型可能会更加庞大,拥有更多的参数。这将使模型能够捕捉更细微的语言特征,提高性能。同时,获取和利用更多的训练数据也是提升模型泛化能力的关键。

多模态学习和跨领域应用

未来的AI模型可能会整合多种类型的数据,如文本、图像、声音等,实现多模态学习。这将使得模型能够更全面地理解世界,并在更广泛的领域中应用,如医疗诊断、安全监控等。

6.3 未来展望

AI伦理和法规

随着AI技术的快速发展,制定相应的伦理准则和法规变得越来越重要。这包括确保AI系统的公正性、透明度和责任归属,以及保护个人隐私和数据安全。

人机协作的未来

未来的工作环境可能会更加强调人机协作。AI系统,如ChatGPT,可以作为人类的助手,帮助处理信息、解决问题和创造新的价值。人机协作将开启新的工作模式,提高效率,促进创新。

结论

ChatGPT的基本原理和应用总结

ChatGPT作为一个先进的自然语言处理模型,基于Transformer架构,通过预训练和微调阶段,展现了在对话生成和理解方面的强大能力。它利用自注意力机制来处理序列数据,允许模型并行处理信息,并捕捉长距离依赖关系。ChatGPT的应用场景广泛,包括但不限于客户服务中的聊天机器人、教育领域的个性化学习辅助、娱乐和内容创作中的创意写作伙伴,以及企业自动化中的内部问答系统。ChatGPT官网icon-default.png?t=N7T8https://openai.com/index/chatgpt/

对AI和NLP未来发展的展望

人工智能和自然语言处理的未来是光明的,同时也充满挑战。随着技术的进步,我们预期会看到:

  • 模型规模的增长:更大的模型将能够处理更复杂的任务,提供更精确的理解和生成能力。
  • 多模态和跨领域应用:AI系统将能够处理和整合来自不同源的数据,如文本、图像和声音。
  • 伦理和法规的跟进:随着AI技术的普及,伦理问题和法规将变得越来越重要,以确保技术的健康发展和应用。
  • 人机协作的新模式:AI将更多地融入人类的工作和生活,成为增强人类能力的工具。


这篇文章提供了对ChatGPT基本原理的概述,希望能够帮助你更好地理解这一技术。如果你对某个特定部分有更深入的兴趣,可以进一步探索相关的文献和资源。

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

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

相关文章

【Vue】自定义指令-v-loading指令的封装

场景 实际开发过程中,发送请求需要时间,在请求的数据未回来时,页面会处于空白状态 > 用户体验不好 需求 封装一个 v-loading 指令,实现加载中的效果 分析 本质 loading效果就是一个蒙层,盖在了盒子上 数据请求…

从零开始精通Onvif之设备发现

设备发现的意义 在复杂的网络环境中,如何快速而准确地识别网络上的Onvif设备,对于摄像头厂商、系统集成商、开发人员乃至最终用户来说,都显得至关重要。 首先,设备发现有效简化了集成的复杂度。在没有统一标准之前,每个…

2004NOIP普及组真题 2. 花生采摘

线上OJ: 【04NOIP普及组】花生采摘 核心思想: 1、本题为贪心即可。 2、因为本题严格限制了顺序,所以先把每个节点的花生数量按降序排序。然后逐一判断下一个花生是否需要去采摘即可 3、每一次采摘完,记录耗时 t 以及采集的花…

力扣第417题测试程序

题目描述: 有一个 m n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights &#…

基于web的垃圾分类回收系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,用户管理,公告管理,运输管理,基础数据管理 用户账户功能包括:系统首页,个人中心,运输管理,公告…

pyqt QlineEdit内部增加按钮方法

pyqt QlineEdit内部增加按钮方法 def addButton(self,lineEdit):btn QtWidgets.QPushButton("")icon1 QtGui.QIcon()icon1.addPixmap(QtGui.QPixmap(":/image/images/th.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)btn.setIcon(icon1)btn.setStyleShe…

全光谱led灯的危害有哪些?曝光低质量全光谱led灯产生的四大风险

眼睛是人类获取信息最重要的感官器官之一,而近视则会导致视力模糊,进而影响学习效果和生活品质。因此,如何保护眼睛,尤其是在学习和使用电子设备时,成为了一个迫切需要解决的问题。然而在护眼领域上,护眼台…

【DevOps】网络安全进阶之路:打造更安全、更可靠的网站

目录 一、网站面临的主要安全威胁 1、SQL注入攻击 2、跨站脚本攻击(XSS) 3、跨站请求伪造(CSRF) 4、文件上传漏洞 5、不安全的直接对象引用 6、安全配置错误 7、使用含有已知漏洞的组件 二、网站安全防护措施 1、输入验证与过滤 2、使用参数化查询 3、数据输出编码…

SCAU 数据结构 实验六 排序算法

![[Pasted image 20240 8638 直接插入排序 Description 用函数实现直接插入排序,并输出每趟排序的结果. 输入格式 第一行:键盘输入待排序关键的个数n 第二行:输入n个待排序关键字,用空格分隔数据 输出格式 每行输出一趟排序…

掌握Java设计模式的23种武器(全):深入解析与实战示例

目录 一、创建型模式 1. 单例模式 (Singleton Pattern) 2. 工厂模式 (Factory Pattern) 3. 抽象工厂模式 (Abstract Factory Pattern) 4. 建造者模式 (Builder Pattern) 5. 原型模式 (Prototype Pattern) 二、结构型模式 6. 适配器模式 (Adapter Pattern) 7. 桥接模式…

通信的本质是什么

通信的本质是信息的传递和交换。在通信过程中,信息从一个主体(发送方)传递到另一个主体(接收方),目的是使接收方理解或使用发送方传递的信息。无论使用什么样的媒介或技术,通信的核心都是在不同…

十三、resultMap解析

分为两部分:解析和使用 解析 1.解析XML的时候单独解析所有的resultMap标签,封装成ResultMap对象存入configuration中 2.解析XML中的SQL语句,封装MappedStatement对象,这里会根据SQL的返回类型是resultMap还是resultType做处理。如…

C语言 | Leetcode C语言题解之第133题克隆图

题目: 题解: struct Node** visited; int* state; //数组存放结点状态 0:结点未创建 1:仅创建结点 2:结点已创建并已填入所有内容void bfs(struct Node* s) {if (visited[s->val] && state[s->val] 2…

【嵌入式系统实践】实验三EXTI按钮外部中断控制LED灯参考代码

此内容不属于实验内容,因自己手头有一STM32F103,故验证性的进行代码实验,按照老师课堂ppt进行了一下复现。 通过按钮控制LED灯的亮灭(状态取反)。 main.c代码: #include "STM32F10X.h" #include "stdio.h"…

Open3D Guided滤波(Python版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 Guided Filter原本主要用于2D图像的降噪等处理,但经过适当的修改后,它可以有效地应用于3D点云的降噪。这种方法能够保留点云中的细节信息,并且对边缘和曲面进行保护。 其具体计算过程如下所述: 1.局部线性假设:…

Python Lambda函数的应用实例教程

在Python编程中,lambda函数是一种简洁且强大的工具,用于创建小型匿名函数。它们在需要快速定义简单函数时特别有用。本文将详细介绍lambda函数的语法及其多种应用实例,帮助读者更好地理解和使用lambda函数。 一、lambda函数的基本概念 1.1 什…

c++(内存分配,构造,析构)

#include <iostream>using namespace std; class Per { private:string name;int age;double *height;double *weigh; public://无参构造Per(){cout << "Per::无参构造" << endl;}//有参构造Per(string name,int age,double height,double weigh):…

Nginx 的 stream 模块,配置转发redis和mysql

Nginx 的 stream 模块确实可以配置多个 upstream 块&#xff0c;用于定义多个后端服务器组。然而&#xff0c;需要注意的是&#xff0c;每个 upstream 块通常用于一种特定类型的服务&#xff0c;例如定义一组TCP服务器&#xff0c;可以是Redis服务器、MySQL服务器或其他任何TCP…

【TB作品】 51单片机8x8点阵显示滚动汉字仿真

功能 题目5基于51单片机LED8x8点阵显示 流水灯 直接滚动显示HELLO 直接滚动显示老师好 代码 void main( void ) {/** 移位后&#xff0c;右边的是第一个595&#xff0c;接收0X02&#xff0c;显示出0X02* 移位后&#xff0c;左边的是第2个595&#xff0c;接收0Xfe&#xff0c…

创建常规DLL的动态链接库

本文仅供学习交流&#xff0c;严禁用于商业用途&#xff0c;如本文涉及侵权请及时联系本人将于及时删除 【例9.3】创建一个MFC 常规DLL的动态链接库Areadll&#xff0c;在该动态链接库中添加一个导出类CArea&#xff0c;通过该类获取正方形和圆的面积。 (1) 使用“MFC动态链接…