当前位置: 首页 > news >正文

CISCRISC? CPU架构有哪些? x86 ARM?

编者按:鉴于笔者水平有限,文中难免有不当之处,还请各位读者海涵。

是为序

我猜,常年混迹CSDN的同学应该不会没听说过CPU吧?

但你真的了解CPU吗?那笔者问你CPU有哪些架构呢?

如果你对你的答案不是很确定,那刚好,不妨跟随笔者来大致了解一下吧~

下面开始正文。

CISC/RISC

照例,先抛出几个问题,带着问题来阅读本文,效果会更好。

  • 目前市面上有哪些CPU厂商呢?
  • 他们所采用的CPU架构又是哪些呢?
  • 不同的CPU架构下面又有哪些CPU品牌呢?

话不多说,让咱们来一一解密。

先说说CPU厂商,在PC和服务器领域,Intel和AMD是耳熟能详的,在移动消费领域有基于ARM架构进行设计的TI、ST、NXP等等,它们都是头部的CPU厂商。当然,还有国产的CPU厂商,后面会介绍到。

再来说说CPU架构,那什么是CPU架构?

CPU架构是CPU厂商给属于同一系列的CPU产品设定的一个规范,其目的是为了区分不同类型的CPU。

我们知道,CPU是为了执行计算机指令而诞生的,根据计算机指令集的不同呢,市面上的CPU可以分为两大阵营:CISC和RISC。

CISC: Complex Instruction Set Computer, 复杂指令集计算机

CISC指令集的设计理念是:尽可能减小指令的数量,让每一条指令实现更复杂的功能,从而降低CPU向内存取指令的频率,进而减小程序的执行时间,提升计算性能。为了让某一条指令能实现更复杂的功能,CISC的指令设计采用变指令长度。而这必然对CPU硬件电路设计提出了非常高的要求,往往需要非常复杂的控制、解码、执行电路。

基于任何事情都可以用二八定律来描述,计算机指令集也不例外。据实际统计,CISC中只有20%的指令才会被经常使用,而剩下的80%则较少使用。也就是说,为了实现那极少使用的80%的指令,代价是复杂的硬件控制电路和编译器设计,这值得吗?

基于此,一种新的CPU设计理念——RISC便诞生了。

RISC: Reduced Instruction Set Computer, 精简指令集计算机

RISC指令集的设计理念是:只保留必要的指令,采用固定长度指令设计,将复杂的功能实现上交给软件去实现。其好处便是指令集、硬件电路、编译器设计简单了。缺点是实现同样的功能,需要更多的指令,代码密度更低。

CISC和RISC孰优孰劣的争论持续了许多年,它们两个虽然谁都不服谁,各自占据着自己的领域。比如,以CISC x86架构为主的Intel/AMD统治着PC和服务器领域,而以RISC架构为主的ARM则统治着移动消费领域。尽管它们互相看不顺眼,但是随着科技的发展,CISC和RISC也在相互借鉴对方的优势,它们之间的界限也越来越模糊

好,关于CISC和RISC,咱们就先讲到这里,感兴趣的同学,也可以去了解了解它们的爱恨历史,也颇为有趣 (参考文章后面的英文参考链接)。

CPU架构

前面我们知道了CPU的指令集可以分为:CISC和RISC。这是指令集层面上的划分。CPU除了指令集,还包括各种组件,如ALU,EU、寄存器、Cache等等。它们的组织方式也会影响CPU的架构,即同一个指令集下面,CPU厂商又可以生产不同架构的CPU。具体来讲,目前市面上基于CISC指令集的CPU主要是x86架构,比如 Intel的x86,x86-64和AMD的amd64。而RISC下面则有ARM,MIPS,PowerPC,RISC-V等多种CPU架构。

下图简单列举了国内外的一些CPU架构。

接下来,笔者参考网上资料,简单总结了一下各主流CPU架构的一些特点。先声明,这些特点只是大概的,了解即可,可能不足,也可能不正确,也可能过时了。当然,如果读者乐意,也欢迎留言指出。

好,那么咱们开始。

x86

x86 架构采用CISC指令集,由Intel公司于 1978 年推出,也就是8086/8088系列,故后面将该系列称为x86系列。它最初设计用于个人电脑,但后来也被用于服务器、工作站和其它设备。x86 架构的特点包括:

  • 兼容性:x86 架构具有很强的兼容性,这意味着可以在不同的 x86 处理器上运行相同的软件。这使得 x86 架构成为一种非常流行的架构,因为用户可以轻松地升级他们的处理器而无需更换软件。
  • 性能:x86 架构的性能非常高,这使得它非常适合于运行复杂的应用程序,比如视频剪辑、渲染、高性能计算、AI算力等领域
  • 功耗:x86 架构的功耗相对较高,这使得它不适合于使用电池供电的设备。
  • 复杂性:x86 架构非常复杂,这使得它很难设计和制造 x86 处理器。
  • 生态:由于x86架构的兼容性,其软硬件生态杠杠滴!

关于x86的劣势,一位知友的文章中有提到,我觉得蛮有趣:

成也萧何,败也萧何。x86主打兼容性,导致兼容性的包袱越来越重,走得举步维艰。

站在哲学的立场来说,优点也是一种缺点,而破局的关键则在于改变。面对x86沉重的兼容性包袱和ARM的步步紧逼,AMD和Intel都在寻找新出路,未来如何,我们且看。

ARM

ARM (Advanced RISC Machine) 架构是一种精简指令集计算机(RISC)架构,由英国 ARM 公司于 1985 年推出。它最初设计用于嵌入式系统,但后来也被用于智能手机、平板电脑和其他设备。ARM 架构的特点包括:

  • 低功耗:ARM 架构的功耗非常低,这使得它非常适合于使用电池供电的设备。
  • 高性能:ARM 架构的性能非常高,这使得它非常适合于运行复杂的应用程序。
  • 小巧:ARM 架构非常小巧,这使得它非常适合于嵌入式系统。
  • 低成本:ARM 架构的成本非常低,这使得它非常适合于大规模生产。

ARM 架构的缺点包括:

  • 兼容性:ARM 架构的兼容性不如 x86 架构好,这意味着有些软件无法在 ARM 架构上运行。
  • 安全性:ARM 架构存在一些安全漏洞,这使得它容易受到攻击。

目前,由于ARM芯片价格低廉,功耗低,性能好,在移动消费等嵌入式领域拥有超过75%以上的市场份额,拥有绝对的话语权,采用ARM内核进行CPU设计的公司也有很多,比如ST (STM32系列)、TI(MSP430系列,DSP系列)、NXP等等。

MIPS

MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福大学 Hennessy 教授领导的研究小组研制。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的 CPU。

它的基本特点是:

  1. 包含大量的寄存器、指令数和字符
  2. 可视的管道延时时隙

采用MIPS架构的公司及CPU芯片:

  • Imagination Technologies MIPS Warrior:MIPS Warrior是一款32位MIPS架构的CPU芯片,主频高达1GHz,采用40纳米工艺制造。
  • MIPS Technologies MIPS32 24K:MIPS32 24K是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。
  • 联发科技MT6572:MT6572是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。
  • 瑞芯微电子RK3288:RK3288是一款32位MIPS架构的CPU芯片,主频高达1.8GHz,采用28纳米工艺制造。
  • 全志科技A31:A31是一款32位MIPS架构的CPU芯片,主频高达1.2GHz,采用28纳米工艺制造。

关于龙芯,网上有资料说是自主研发的 LoongArch 架构。,也有说基于MIPS,笔者也没搞清楚,暂且按下不表。欢迎读者留言指出,谢谢~

RISC-V

RISC-V 架构是一种精简指令集计算机(RISC)架构,由加州大学伯克利分校于 2010 年推出。它最初设计用于嵌入式系统,但后来也被用于服务器、工作站和其他设备。RISC-V 架构的特点包括:

  • 开源:RISC-V 架构是开源的,这意味着任何人都可以免费使用和修改它。
  • 模块化:RISC-V 架构是模块化的,这意味着可以根据需要添加或删除指令。
  • 可扩展:RISC-V 架构是可扩展的,这意味着可以将其扩展到不同的处理器内核。
  • 低功耗:RISC-V 架构的功耗非常低,这使得它非常适合于使用电池供电的设备。
  • 高性能:RISC-V 架构的性能非常高,这使得它非常适合于运行复杂的应用程序。

采用RISC-V架构的公司及CPU芯片:

  • 阿里巴巴玄铁910:玄铁910是一款32位RISC-V处理器,主频高达1GHz,采用40纳米工艺制造,主要用于物联网设备。
  • 华为HiSilicon Hi3559A:HiSilicon Hi3559A是一款32位RISC-V处理器,主频高达1.5GHz,采用28纳米工艺制造,主要用于智能家居和安防监控设备。
  • 中兴通讯ZTE ZC310:ZTE ZC310是一款32位RISC-V处理器,主频高达1.2GHz,采用40纳米工艺制造,主要用于工业控制和汽车电子设备。
  • 兆易创新GD32V:GD32V是一款32位RISC-V处理器,主频高达200MHz,采用40纳米工艺制造,主要用于物联网设备和可穿戴设备。
  • 乐鑫科技ESP32-C3:ESP32-C3是一款32位RISC-V处理器,主频高达160MHz,采用40纳米工艺制造,主要用于物联网设备和智能家居设备。

RISC-V由于其开源特性,很多公司都采用它进行开发,但大多都是一些小设备小应用,比如物联网之类的。有知友把它比作“永远的小童星”,虽然很火,但终究长不大,好像有一定道理。

PowerPC

PowerPC 架构是一种精简指令集计算机(RISC)架构,由苹果公司、IBM 公司和摩托罗拉公司于 1991 年联合推出。它最初设计用于工作站,但后来也被用于服务器、嵌入式系统和其他设备。PowerPC 架构的特点包括:

PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBMPowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC)架构。二十世纪九十年代,IBM、苹果和摩托罗拉合作开发 PowerPC 芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活,有着广泛的应用范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了像串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

PowerPC, emmm,好像在路由器,网关上面用得比较多。

国产CPU

关于国产CPU,笔者了解的不多,大概有六种品牌,貌似龙芯最强,贴一张图,让读者有个大概的印象。

具体细节可以参考这篇文章:国产CPU之4种架构和6大品牌 - 知乎 (zhihu.com)

结语

终于看完了,真是收获满满啊,不过你不会真的以为,本文的内容就到此结束了吧?

我只能说,Too young too simple.

不信你再看看这篇文章,一个外国老哥写的:都2021年了,还把x86和ARM归为CISC和RISC? - 知乎 (zhihu.com)

附上英文原文相关链接:

  • The final ISA showdown: Is ARM, x86, or MIPS intrinsically more power efficient? | Extremetech
  • RISC vs. CISC Is the Wrong Lens for Comparing Modern x86, ARM CPUs | Extremetech

反正笔者看完后,就一个反应:合着我写的都完全过时了,白写了是吧!

但是细细想来,也不全是,毕竟自己还是对RISC、CISC以及各种CPU芯片的历史、架构和应用有了一个大致、朦胧的了解,不至于一无所知,完全抓瞎。如果读者也和我一样,那么本文的目的便达到了。

笔者后续也会尽量对本文内容进行更新。

最后,如果读者觉得本文对你有所帮助,还请帮忙点个赞,你的鼓励是笔者不懈创作的动力,谢谢~

如果没有,那笔者也只能摊摊双手,表示浪费你宝贵的时间咯,然后溜之大吉~

【全文完】

相关文章:

CISCRISC? CPU架构有哪些? x86 ARM?

编者按:鉴于笔者水平有限,文中难免有不当之处,还请各位读者海涵。 是为序 我猜,常年混迹CSDN的同学应该不会没听说过CPU吧? 但你真的了解CPU吗?那笔者问你CPU有哪些架构呢? 如果你对你的答案…...

【C语言】(15)指针进阶

1. 指针与const 在C语言中,const关键字和指针一起使用时,可以创建对常量的引用,或者创建指向常量的指针。这对于保护重要数据不被意外修改以及提高程序的可读性和运行时的安全性非常有用。 1.1 const的基本用法 const关键字用于声明一个变…...

力扣精选算法100道—— 连续数组(前缀和专题)

连续数组&#xff08;前缀和专题&#xff09; 目录 &#x1f6a9;了解题意 &#x1f6a9;算法原理 ❗为什么hash设置成<0,-1>键值对 ❗与和为K的子数组比较hash的键值对 &#x1f6a9;代码实现 &#x1f6a9;了解题意 我们看到给定数组里面只有0和1&#xff0c;我们…...

flutter 国内源

Flutter 在中国由于网络原因&#xff0c;从官方默认的国外源下载Dart包和Flutter SDK可能会比较慢或者不稳定。为了加速依赖包的获取与Flutter SDK的安装&#xff0c;可以使用国内镜像源。以下是一些国内常用的Flutter和Dart包镜像源&#xff1a; 清华大学开源软件镜像站 Flu…...

第九个知识点:内部对象

Date对象: <script>var date new Date();date.getFullYear();//年date.getMonth();//月date.getDate();//日date.getDay();//星期几date.getHours();//时date.getMinutes();//分date.getSeconds();//秒date.getTime();//获取时间戳&#xff0c;时间戳时全球统一&#x…...

Android 车载应用开发之车载操作系统

一、前言 到 2030 年,全球电动汽车的销量将超过 7000 万辆,保有量将达到 3.8 亿辆,全球年度新车渗透率有望触及 60% 。这一数据来自国际能源署(IEA)发布的《全球电动汽车展望2023》。 市场趋势和政策努力的双加持下,新能源汽车来势凶猛,燃油车保有量逐年递减。此番景象…...

Qt PCL学习(文章链接汇总)

Qt PCL学习&#xff08;一&#xff09;&#xff1a;环境搭建 Qt PCL学习&#xff08;二&#xff09;&#xff1a;点云读取与保存 Qt PCL学习&#xff08;三&#xff09;&#xff1a;点云滤波 Qt PCL学习&#xff08;四&#xff09;&#xff1a;点云关键点 持续更新中…...

安卓动态链接库文件体积优化探索实践

背景介绍 应用安装包的体积影响着用户下载量、安装时长、用户磁盘占用量等多个方面&#xff0c;据Google Play统计&#xff0c;应用体积每增加6MB&#xff0c;安装的转化率将下降1%。 安装包的体积受诸多方面影响&#xff0c;针对dex、资源文件、so文件都有不同的优化策略&…...

[Java][算法 哈希]Day 01---LeetCode 热题 100---01~03

LeetCode 热题 100---01~03 ------->哈希 第一题 两数之和 思路 最直接的理解就是 找出两个数的和等于目标数 这两个数可以相同 但是不能是同一个数字&#xff08;从数组上理解就是内存上不是同一位置&#xff09; 解法一&#xff1a;暴力法 暴力解万物 按照需求 …...

【每日一题】LeetCode——链表的中间结点

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…...

k8s 部署java应用 基于ingress+jar包

k8 集群ingress的访问模式 先部署一个namespace 命名空间 vim namespace.yaml kind: Namespace apiVersion: v1 metadata:name: ingress-testlabels:env: ingress-test 在部署deployment deployment是pod层一层封装。可以实现多节点部署 资源分配 回滚部署等方式。 部署的…...

深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案。深度学习模型训练中的调优指南大全概括了数据预处理、模型架构设计、超参数优化、正则化策略和训练技巧等多个关键方面,以提升模型性能和泛化能力。 …...

“探索AJAX:前端与后端数据交互的利器“

前言 在现代Web开发中&#xff0c;前端与后端之间的数据交互是一个至关重要的环节。为了实现无需刷新页面的动态更新&#xff0c;AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;作为一种强大的技术被广泛应用。 AJAX的原理 AJAX通过JavaScript和XMLHttpReque…...

【5G NR】移动通讯中使用的信道编解码技术

目录 一、引言 二、信道编解码技术概述 三、移动通讯中常用的信道编解码技术 四、优缺点分析与比较 五、未来发展趋势 六、结论 本文主要介绍了移动通讯中采用的信道编解码技术&#xff0c;由于在5G NR终端中&#xff0c;通常要兼容4G LTE通讯技术&#xff0c;所以4G LTE…...

用Python Tkinter打造的精彩连连看小游戏【附源码】

文章目录 连连看小游戏&#xff1a;用Python Tkinter打造的精彩游戏体验游戏简介技术背景MainWindow类:职责:方法:Point类: 主执行部分:完整代码&#xff1a;总结&#xff1a; 连连看小游戏&#xff1a;用Python Tkinter打造的精彩游戏体验 在丰富多彩的游戏世界中&#xff0c…...

nvm安装node后,npm无效

类似报这种问题&#xff0c;是因为去github下载npm时下载失败&#xff0c; Please visit https://github.com/npm/cli/releases/tag/v6.14.17 to download npm. 第一种方法&#xff1a;需要复制这里面的地址爬梯子去下载&#xff08;github有时不用梯子能直接下载&#xff0c;有…...

spring boot(2.4.x 开始)和spring cloud项目中配置文件application和bootstrap加载顺序

在前面的文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 spring boot 2.4.x 版本之前通过 ConfigFileApplicationListener 加载配置 https://github.com/spring-projects/spring-boot/blob/v2.3.12.RELEASE/spring-boot-project/spring-boot/src/mai…...

5-2、S曲线计算【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍S曲线的基本变换&#xff0c;将基本形式的S曲线变换成为任意过两点的S曲线&#xff0c;为后续步进电机S曲线运动提供理论支撑 一.计算目标 ①计算经过任意不同两点的S曲线方程 ②可调节曲线平…...

SQL 注入 - http头注入之UA头注入探测

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、http头注入介绍 HTTP头注入是一种网络安全攻击手段,它利用了Web应用程序对HTTP头的处理不当或缺乏充分的验证和过滤。在这种攻击中,攻击者通过修改HTTP请求头中的某些字段,…...

学习数据结构和算法的第5天

空间复杂度及其常见案例 空间复杂度 空间复杂度也是一个数学函数表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。空间复杂度…...

Android 11 访问 Android/data/或者getExternalCacheDir() root方式

前言&#xff1a; 需求要求安装三方应用ExternalCacheDir()下载下来的apk文件。 getExternalCacheDir() : /storage/emulated/0/Android/data/com../cache/ 获取访问权限 如果手机安卓版本为Android10的时候,可以在AndroidManifest.xml中添加下列代码 android:requestLegacyExt…...

Linux探秘之旅:透彻理解路径、命令与系统概念

目录 如何远程连接 远程登录简明指南 linux区别 1.严格区分大小写 2.linux的命令返回结果判断 3.如何查看网络信息 4.关于后缀名&#xff08;Linux不关心文件后缀&#xff09; 4.1 需要记忆的后缀 5.echo命令 6.linux一切皆文件 6.1比如磁盘的文件 6.2可执行文件 …...

哈希算法 c语言

#include <stdio.h> #include <stdlib.h> #include <string.h> // 哈希函数 unsigned int hash_function(const char *str) { unsigned int hash 0; while (*str) { hash (hash * 31 *str) % 1000; str; } return hash;…...

新版MQL语言程序设计:组合模式的原理、应用及代码实现

文章目录 一、什么组合模式二、为什么需要组合模式三、组合模式的实现原理四、组合模式的应用场景五、组合模式的代码实现 一、什么组合模式 组合模式是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和…...

代码随想录算法训练营第25天 | 216.组合总和III ,17.电话号码的字母组合

回溯章节理论基础&#xff1a; https://programmercarl.com/%E5%9B%9E%E6%BA%AF%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 216.组合总和III 题目链接&#xff1a;https://leetcode.cn/problems/combination-sum-iii/ 思路: 本题就是在[1,2,3,4,5,6,7,…...

Rust 第一个rust程序Hello Rust️

文章目录 前言一、vscode 安装rust相关插件二、Cargo New三、vscode调试rustLLDB 前言 Rust学习系列。今天就让我们掌握第一个rust程序。Hello Rust &#x1f980;️。 在上一篇文章我们在macOS成功安装了rust。 一、vscode 安装rust相关插件 以下是一些常用的 Rust 开发插件…...

高斯消去法 | LU分解 | PA=LU分解(MatLab)

一、问题描述 利用高斯消去法&#xff0c;LU 分解及PALU 分解求解非线性方程组。 二、实验目的 掌握高斯消去法、LU 分解、PALU 分解的算法原理&#xff1b;编写代码实现利用高斯消去法、LU 分解、PALU 分解来求解线性方程组。 三、实验内容及要求 1. 利用顺序高斯消去法求…...

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号

Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号 code review! 文章目录 Linux笔记之expect和bash脚本监听输出并在匹配到指定字符串时发送中断信号1.expect2.bash 1.expect 在Expect脚本中&#xff0c;你可以使用expect来监听程序输出&#xff0c;…...

项目02《游戏-12-开发》Unity3D

基于 项目02《游戏-11-开发》Unity3D &#xff0c; 任务&#xff1a;实现场景怪物自动巡航 &#xff0c; 首先在场景中创建小球命名为路径点WayPoint0&#xff0c; 取消小球的碰撞器Collider&#xff0c; 再复制两个改名为WayPoint1 和 WayPoint2 &#xff0c; 在…...

记一次面试题

1.Php 私有化包&#xff08;composer&#xff09;的部署 1. 创建你的PHP包 确定你的包的功能和命名空间。 创建一个新的目录并初始化一个Git仓库。 使用composer init命令创建一个composer.json文件&#xff0c;并定义你的包名、版本、依赖等信息。 2. 开发并测试你的包 在本地…...

Rust入门2——随机数

文章目录 一、生成随机数二、比较两个数相等 简单列出两个Rust的小例子 一、生成随机数 在Cargo.toml的dependencies中引入rand&#xff0c;指定rand的版本 [dependencies] rand "^0.3.14"之后在主函数中调用rand函数&#xff0c;生成随机数 use rand::Rng; f…...

c#: 表达式树的简化

环境&#xff1a; .net 6 一、问题&#xff1f; 有下面的表达式&#xff1a; var nums new List<int> { 1, 2, 3 }; Expression<Func<int, bool>> exp i > i > nums.Max();我们知道&#xff0c;它其实就是&#xff1a;exp i > i > 3; 那么…...

13. UE5 RPG限制Attribute的值的范围以及生成结构体

前面几章&#xff0c;我们实现了通过GameplayEffect对Attribute值的修改&#xff0c;比如血量和蓝量&#xff0c;我们都是有一个最大血量和最大蓝量去限制它的最大值&#xff0c;而且血量和蓝量最小值不会小于零。之前我们是没有实现相关限制的&#xff0c;接下来&#xff0c;我…...

UE4运用C++和框架开发坦克大战教程笔记(十九)(第58~60集)完结

UE4运用C和框架开发坦克大战教程笔记&#xff08;十九&#xff09;&#xff08;第58~60集&#xff09;完结 58. 弹窗显示与隐藏59. UI 面板销毁60. 框架完成与总结 58. 弹窗显示与隐藏 这节课我们先来补全 TransferMask() 里对于 Overlay 布局类型面板的遮罩转移逻辑&#xff…...

ModuleNotFoundError: No module named ‘_ctypes‘报错解决方案

1、须命令安装libbffi-devel软件包&#xff1a; yum install libffi-devel -y2、安装完后再重装python3&#xff0c;无须卸载 找到之前的python3安装包&#xff0c;如果安装包删除了通过 history | grep python命令找到最初安装时的包下载的命令下载&#xff0c;保证版本一样&…...

【服务器数据恢复】服务器RAID模块硬件损坏的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 某品牌服务器中有一组由数块SAS硬盘组建的RAID5磁盘阵列&#xff0c;服务器操作系统是WINDOWS SERVER&#xff0c;服务器中存放企业数据&#xff0c;无数据库文件。 服务器出故障之前出现过几次意外断电的情况&#xff0c;服务器断电…...

spring boot3x登录开发-上(整合jwt)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 jwt简介 导依赖 编写jwt工具类 1.配置项直接嵌入代码&#xff0c;通过类名.静态方法使用 2.配置项写到…...

git 克隆拉取代码出现私钥权限问题。

问题反馈&#xff1a; rootdd:~/android/boost-1.74-for-android-r20b# git clone https://github.com/liulilittle/boost-1.74-for-android-r20b.git Cloning into boost-1.74-for-android-r20b... WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 0777 for /root/…...

【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-卷积码原理

目录 一、引言 二、卷积编码的发展历史 2.1 卷积码的起源 2.2 主要发展阶段 2.3 重要里程碑 三、卷积编码的基本概念 3.1 基本定义 3.2 编码器框图 3.3 编码多项式 3.4 网格图(Trellis)描述 四、MATLAB示例 一、引言 卷积编码&#xff0c;作为数字通信领域中的一项…...

揭开Markdown的秘籍:标题|文字样式|列表

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;Markdown指南、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️Markdown 标题二. ⛳️Markdown 文字样式2.1 &#x1f514;斜体2.2 &…...

移动最小二乘法

移动最小二乘法&#xff08;Moving Least Square&#xff0c;MLS&#xff09;主要应用于曲线与曲面拟合&#xff0c;该方法基于紧支撑加权函数&#xff08;即函数值只在有限大小的封闭域中定义大于零&#xff0c;而在域外则定义为零&#xff09;和多项式基函数&#xff0c;通过…...

【LeetCode】37. 解数独(困难)——代码随想录算法训练营Day30

题目链接&#xff1a;37. 解数独 题目描述 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&…...

VUE学习——属性绑定

属性绑定&#xff0c;就是给html添加id、class这样类似的操作。 <template><div v-bind:id"dynamicId"><div v-bind:class"dynamicClass">Test</div></div> </template><script>export default{data(){return{…...

vue3 之 通用组件统一注册全局

components/index.js // 把components中的所组件都进行全局化注册 // 通过插件的方式 import ImageView from ./ImageView/index.vue import Sku from ./XtxSku/index.vue export const componentPlugin {install (app) {// app.component(组件名字&#xff0c;组件配置对象)…...

[Java][算法 双指针]Day 02---LeetCode 热题 100---04~07

LeetCode 热题 100---04~07 第一题&#xff1a;移动零 思路 找到每一个为0的元素 然后移到数组的最后 但是需要注意的是 要在给定的数组原地进行修改 并且其他非零元素的相对顺序不能改变 我们采用双指针法 定义两个指针i和j i和j一开始分别都在0索引位置 然后判断j所…...

【问题解决】如何将一个服务器的docker迁移到另一个服务器

要将Docker容器从一台机器迁移到另一台机器&#xff0c;可以按照以下步骤操作&#xff1a; 在机器A上提交容器为镜像&#xff1a; 使用docker commit命令将运行中的容器保存为新的镜像。这里需要容器的ID或名称&#xff0c;以及你想要命名的目标镜像名。 docker commit [容器…...

C++单例模式详解

目录 0. 前言 1. 懒汉式单例模式 1.1 最简单的单例模式 1.2 防止内存泄漏 1.2.1 智能指针的方法 1.2.2 静态嵌套的方法 1.3 保证线程安全 1.4 C11版本的优雅解决方案 2. 饿汉式单例模式 0. 前言 起因是在程序中重复声明了一个单例模式的变量&#xff0c;后来程序怎么调…...

LLM应用开发与落地:流式响应

一、背景 最近智能客服产品给到一个游戏客户那边&#xff0c;客户那边的客服负责人体验后认为我们产品回答的准确率是还是比较高的。同时&#xff0c;他反馈了几个需要改进的地方&#xff0c;其中一个就是机器人回复慢。机器人回复慢有很多原因&#xff0c;也有优化方式&#…...

神经网络 | 基于 CNN 模型实现土壤湿度预测

Hi&#xff0c;大家好&#xff0c;我是半亩花海。在现代农业和环境监测中&#xff0c;了解土壤湿度的变化对于作物生长和水资源管理至关重要。通过深度学习技术&#xff0c;特别是卷积神经网络&#xff0c;我们可以利用过去的土壤湿度数据来预测未来的湿度趋势。本文将使用 Pad…...

江科大STM32 终

目录 SPI协议10.1 SPI简介W25Q64简介10.3 SPI软件读写W25Q6410.4 SPI硬件外设读写W25Q64 BKP备份寄存器、PER电源控制器、RTC实时时钟11.0 Unix时间戳代码示例&#xff1a;读写备份寄存器BKP11.2 RTC实时时钟 十二、PWR电源控制12.1 PWR简介代码示例&#xff1a;修改主频12.3 串…...