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

算法与数据结构:位运算与快速幂

文章目录

        • 位运算
        • 快速幂

位运算

在计算机的世界中,一切数字都是二进制的。类比于现实世界中我们所使用的十进制,二进制即为「逢二进一」的运算体系。

我们以 B、D 来分别标记二进制与十进制,例如 10D 表示十进制中的 10,而 10B 则表示二进制中的 10。

回顾十进制,
10 D = 1 × 1 0 1 + 0 × 1 0 0 = 10 123 D = 1 × 1 0 2 + 2 × 1 0 1 + 3 × 1 0 0 = 123 10D = 1\times 10^1 + 0\times 10^0 = 10 \\ 123D = 1\times 10^2 + 2\times 10^1 + 3\times 10^0 = 123 10D=1×101+0×100=10123D=1×102+2×101+3×100=123

类比十进制,进一步理解二进制:
10 B = 1 × 2 1 + 0 × 2 0 = 2 D 123 B = 1 × 2 2 + 2 × 2 1 + 3 × 2 0 = 11 D 10B = 1\times 2^1 + 0\times 2^0 = 2D\\ 123B = 1\times 2^2 + 2\times 2^1 + 3\times 2^0 = 11D 10B=1×21+0×20=2D123B=1×22+2×21+3×20=11D

由此我们可以发现,十进制就是「逢十进一」,而二进制就是「逢二进一」。

在计算机的运算过程中,所有的数字都是用「二进制」表示的,其中数字的每一位称为一个 bit,其取值要么为 0,要么为 1

「位运算」是「二进制」所特有的运算,共分为 6 类,如下表所示:

运算符名称规则
&两个位均为1,结果为1
|两个位均为0,结果为0
^异或两个位相同则为0,不同则为1
~取反0变1,1变0
<<左移二进制下所有位同时向左移动,低位用0填充,高位越界后舍弃
>>右移二进制下所有位同时向右移动,无符号数高位补0,有符号数视编译器而定

我们以 1011B、0101B 举例(均为无符号数):

  • 1011B & 0101B = 0001B
  • 1011B | 0101B = 1111B
  • 1011B ^ 0101B = 1110B
  • ~1011B = 0100B
  • 1011B << 2 = 101100B
  • 1011B >> 2 = 10B

想要彻底掌握位运算,还需了解原码、反码、补码等知识,但由于本文重点并不在此,因此不再详细展开。

快速幂

接下来开始介绍「快速幂」算法,该算法常用于快速指数运算。

举个例子,如果想要计算 2 31 2^{31} 231 的具体数值,最少需要计算多少次可以完成?

一个比较显然的答案是从 1 开始连乘 31 个 2,这样肯定可以得到准确的答案,但是否有更快的方法?

答案显然是「有」,如果我们用二进制来表示 31,则可以得到:
31 D = 11111 B = 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 31 D 31D = 11111B = 1\times 2^4 + 1\times 2^3 + 1\times 2^2 + 1\times 2^1 + 1\times 2^0 = 31D 31D=11111B=1×24+1×23+1×22+1×21+1×20=31D

由此我们可以将 2 31 2^{31} 231 进行转化,得到:
2 31 = 2 1 + 2 + 4 + 8 + 16 = 2 1 × 2 2 × 2 4 × 2 8 × 2 16 2^{31} = 2^{1+2+4+8+16} = 2^1\times 2^2\times 2^4 \times 2^8 \times 2^{16} 231=21+2+4+8+16=21×22×24×28×216

因此我们只需要求出 2 1 , 2 2 , 2 4 , 2 8 , 2 16 2^1, 2^2, 2^4, 2^8 , 2^{16} 21,22,24,28,216 ,再将它们依次相乘,就可以得到 2 31 2^{31} 231

我们从 1 开始只需要计算 5 次即可求出 2 16 2^{16} 216 。再将这几个数字依次乘起来,就得到了 2 31 2^{31} 231

这种通过将指数转化为二进制,并以此来加快幂运算的方法就是快速幂。当计算
a x a^x ax ( a 为任意实数)时,快速幂方法可以将原来的 O ( x ) O(x) O(x) 时间复杂度降低为
O ( l o g ( x ) ) O(log(x)) O(log(x)) ,从而大大加快指数运算。

实现该算法所需代码并不长,大家可以手动实现,也可以参考下述代码:

// 计算 a ^ b
int poww (int a, int b) {int base = a, ans = 1;while (b) {if (b & 1) ans *= base;base *= base;b >>= 1;}return ans;
}
# 快速幂算法
def poww(a, b):base = a;ans = 1;while (b):print("b:", b)if ( b & 1):ans *= base;base *= base;b >>= 1;print(ans);return ans;poww(2, 14);b: 14
b: 7
b: 3
b: 1
16384

相关文章:

算法与数据结构:位运算与快速幂

文章目录 位运算快速幂 位运算 在计算机的世界中&#xff0c;一切数字都是二进制的。类比于现实世界中我们所使用的十进制&#xff0c;二进制即为「逢二进一」的运算体系。 我们以 B、D 来分别标记二进制与十进制&#xff0c;例如 10D 表示十进制中的 10&#xff0c;而 10B 则…...

基于R语言的空间异质性数据分析技术

在自然和社会科学领域&#xff0c;存在大量与地理或空间相关的数据&#xff0c;这些数据通常具有显著的空间异质性。传统的统计学方法在处理这类数据时往往力不从心。基于R语言的一系列空间异质性数据分析方法&#xff0c;如地理加权回归&#xff08;GWR&#xff09;、地理加权…...

数据分析预备篇---Pandas的DataFrame的更多操作

DataFrame的统计方法 之前学习Series的时候接触了一些很实用的统计相关方法,包括max求最大值,min求最小值,sum求和,mean求平均值等。DataFrame有类似的方法,由于它是二维的,我们可以指定到底是沿着索引纵向操作,相当于沿着轴0(计算每列的统计量);还是说沿着列名横向操…...

精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制

精益数据分析&#xff08;73/126&#xff09;&#xff1a;黏性阶段的功能优先级法则——七问决策模型与风险控制 在创业的黏性阶段&#xff0c;如何从海量的功能创意中筛选出真正能提升用户留存的关键改动&#xff1f;今天&#xff0c;我们结合《精益数据分析》中的“开发功能…...

Linux系统之traceroute命令详解:追踪网络路径的核心工具

Linux系统之traceroute命令详解&#xff1a;追踪网络路径的核心工具 一、traceroute介绍1. 基本介绍2. 核心原理 二、安装与基本使用1. 安装traceroute2. 基础语法 三、基本使用四、常用参数与场景五、典型应用场景1. 定位网络延迟问题2. 检测防火墙拦截3. 绕过DNS解析问题4. 对…...

通义灵码2.5智能体模式联合MCP:打造自动化菜品推荐平台,实现从需求到部署的全流程创新

一、项目背景与目标 随着人工智能技术的快速发展&#xff0c;AI 辅助开发工具正在改变传统的软件开发模式。通义灵码 2.5 版本的发布&#xff0c;通过 Qwen3 模型 和 编程智能体模式 的结合&#xff0c;实现了从需求描述到代码生成的全流程自动化。同时&#xff0c;其对 魔搭M…...

Spring的AOP在什么场景下会失效?

SpringAOP是通过动态代理实现的&#xff0c;所以想要AOP生效就是需要动态代理生效&#xff0c;并且可以提前调用到代理对象的方法。 什么情况下会不走动态代理呢&#xff1f; 首先就是类内部的调用&#xff0c;比如一些私有方法的调用&#xff0c;内部类调用&#xff0c;以及同…...

基于规则引擎与机器学习的智能Web应用防火墙设计与实现

基于规则引擎与机器学习的智能Web应用防火墙设计与实现 引言&#xff1a;智能防御的必然选择 在2023年OWASP最新报告中&#xff0c;传统Web应用防火墙&#xff08;WAF&#xff09;对新型API攻击的漏报率高达67%&#xff0c;而误报导致的正常业务拦截损失每年超过2.3亿美元。面…...

NODE-I916 I721模块化电脑发布,AI算力与超低功耗的完美平衡

在智能工业与边缘计算蓬勃发展的今天&#xff0c;企业对计算设备的性能与能效需求日益严苛。全新推出NODE-I916与NODE-I721模块化电脑&#xff0c;分别搭载英特尔 酷睿™ Ultra 平台与Alder Lake-N平台&#xff0c;以差异化CPU配置为核心&#xff0c;为AI推理、工业自动化及嵌入…...

2024年热门AI趋势及回顾

人工智能的崛起 2024 年可能会被铭记为人工智能不再是一种技术新奇事物&#xff0c;而是成为现实的一年。微软、Salesforce 和 Intuit 等巨头将人工智能融入主流企业解决方案&#xff1b;从文案写作到数据分析&#xff0c;专门的人工智能应用程序和服务如雨后春笋般涌现&#…...

Python + moviepy:根据图片或数据高效生成视频全流程详解

前言 在数据可视化、自媒体内容生产、学术汇报等领域,我们常常需要将一组图片或一段变动的数据,自动合成为视频文件。这样不仅能提升内容表现力,也极大节省了人工操作时间。Python作为数据处理和自动化领域的王者,其`moviepy`库为我们提供了灵活高效的视频生成方案。本文将…...

文档债务拖累交付速度?5大优化策略文档自动化

开发者在追求开发速度的过程中&#xff0c;往往会忽视文档的编写&#xff0c;如省略设计文档、代码注释或API文档等。这种做法往往导致在后期调试阶段需要花费三倍以上的时间来理解代码逻辑&#xff0c;进而形成所谓的文档债务&#xff0c;严重拖累交付速度并造成资源浪费。而积…...

java接口自动化初识

简介 了解什么是接口和为什么要做接口测试。并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程。 一、什么是接口 在这里我举了一个比较生活化的例子&#xff0c;比如我们有一台笔记本&#xff0c;在笔记本的两端有很多插口。例如&#xff1a;USB插口。那…...

Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理

Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理 flyfish 设计 一个基于 Wan2.1 文本到视频模型的自动化视频生成系统。 文件关系图 script.py ├── 读取 → config.json │ ├── 模型配置 → 加载AI模型 │ ├── 生成参数 → 控制生成质量 │ └…...

高阶数据结构——AVL树的实现(详细解答)

目录 1.AVL的概念 2.AVL树的实现 2.1 AVL树的插入 2.1.1 平衡因子的更新 2.1.2 AVL树的插入 2.2 旋转 2.2.1 旋转的原则 2.2.2 右单旋 2.2.3 左单旋 2.2.4 先左后右双旋转 2.2.5 先右后左双旋转&#xff08;先左后右双旋转模型的镜像&#xff09; 2.2.6 代码总结 2…...

工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求

前言 大家好&#xff0c;我是老马。 最近想设计一款审批系统&#xff0c;于是了解一下关于流程引擎的知识。 下面是一些的流程引擎相关资料。 工作流引擎系列 工作流引擎-00-流程引擎概览 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&#x…...

自定义geojson生成物体的样式

在上节我们学习了如何在cesium中导入geojson数据,本节我们来学习如何让它变得更加炫酷. // 加载GeoJSON数据 // 使用Cesium的GeoJsonDataSource加载指定URL的地理数据 Cesium.GeoJsonDataSource.load("https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json&quo…...

在tensorflow源码环境里,编译出独立的jni.so,避免依赖libtensorflowlite.so,从而实现apk体积最小化

需要在APP里使用tensorflow lite来运行PC端训练的model.tlite&#xff0c;又想apk的体积最小&#xff0c;尝试了如下方法&#xff1a; 1. 在gradle里配置 implementation("org.tensorflow:tensorflow-lite:2.16.1") 这样会引入tensorflow.jar&#xff0c;最终apk的…...

springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!

最近有一个需求 需要通过springboot框架 来和 海康的摄像头设备进行通信&#xff0c;就研究了一下 海康的官方ISUP-SDK 文档对接。这个sdk 主要实现了 第三方快速集成海康的设备。 海康的文档地址&#xff1a; https://open.hikvision.com/docs/docId?productId5cda567cf47ae8…...

【移动应用安全】Android系统安全与保护机制

Android系统安全与保护机制是一个多层次、多维度的防御体系&#xff0c;其安全架构与系统层级紧密耦合。以下是对各层级安全机制的扩展分析&#xff1a; Linux内核层&#xff08;Linux Kernel&#xff09;安全机制 强制访问控制&#xff08;MAC&#xff09; 通过SELinux&#…...

Spring Boot中如何使用RabbitMQ?

前面已经了解了怎么使用RabbitMQ的JDK原生客户端&#xff0c;现在我们来了解Spring Boot中如何使用RabbitMQ&#xff0c;在学习之前&#xff0c;先做好准备工作&#xff1a; 1. 添加依赖 在Spring Boot中使用RabbitMQ&#xff0c;需要使用如下依赖&#xff1a; <dependenc…...

kotlin 将一个list按条件分为两个list(partition )

前言 在安卓开发过程中&#xff0c;我们经常需要将一个列表按照特定条件拆分为两个子列表。随着对语言的深入理解&#xff0c;我发现了一些更高效、更简洁的实现方式&#xff0c;现在与大家分享。 实现 传统Java实现 假设我们有以下列表需要处理&#xff1a; List<Stri…...

R语言学习--Day04--数据分析技巧

在清洗完数据&#xff0c;在对数据分析前&#xff0c;我们要懂得先梳理一下我们的逻辑&#xff0c;即数据是什么形式的&#xff0c;要进行哪种分析&#xff0c;有可能呈现什么特点&#xff0c;进而再想怎么处理数据去画图可以最大程度地凸显我们要的特点。 一般来讲&#xff0…...

企业终端设备的安全管控

企业终端设备的安全管控是信息安全体系中的重要环节&#xff0c;涉及从设备准入到数据防护的全生命周期管理。 以下是一套系统化的解决方案&#xff0c;涵盖技术、管理和人员三个维度&#xff1a; 一、终端设备全生命周期管控 设备准入控制 802.1X网络认证&#xff1a;对接企业…...

桥梁凝冰在线监测装置:科技守护道路安全的新防线

在交通基础设施安全领域&#xff0c;桥梁凝冰问题始终是冬季道路管理的重点挑战。传统人工巡检方式存在时效性差、覆盖范围有限等缺陷&#xff0c;而桥梁凝冰在线监测装置的普及应用&#xff0c;正为这一难题提供智能化解决方案。 一、装置工作原理 桥梁凝冰在线监测装置通过多…...

【开源】一个基于 Vue3 和 Electron 开发的第三方网易云音乐客户端,具有与官方客户端相似的界面布局

&#x1f3b5; XCMusic&#xff1a;高颜值第三方网易云音乐客户端 &#x1f3b6; &#x1f4cd; 项目亮点 XCMusic 是一款基于Vue3Electron开发的开源、跨平台网易云音乐客户端。 此音乐播放器基于 Electron 开发&#xff0c;旨在为用户提供简洁、美观、兼容多平台的音乐体验。…...

Android 中拖拽从一个组件到另外一个组件的写法(跨容器拖拽)

在 Android 中&#xff0c;拖拽一个图片&#xff08;例如 ImageView&#xff09;到另一个组件&#xff08;如 LinearLayout、FrameLayout 等容器&#xff09;涉及以下步骤&#xff1a; 准备工作 源组件&#xff1a;你从哪里开始拖动&#xff08;如 ImageView&#xff09;。 目…...

MATLAB实现GAN用于图像分类

生成对抗网络&#xff08;GAN&#xff09;是一种强大的生成模型&#xff0c;由生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;组成。生成器用于生成图像&#xff0c;判别器用于判断图像是真实的还是生成的。在MATLAB中实现GAN用于图像…...

武汉副市长李湛莅临指导 珈和展会精彩亮相引《武汉电视台》深度报道 以硬核科技赋能农业强链新范式获政府媒体“双重点赞”

为充分响应“双循环”新发展格局&#xff0c;深化区域产业协作、推动供需精准对接&#xff0c;进一步促进经济高质量发展&#xff0c;5月16日-18日&#xff0c;由武汉市经济和信息化局主办的2025年产业链供需对接&#xff08;绍兴&#xff09;推广活动在绍兴国际会展中心举办。…...

matlab慕课学习3.4

于20250319 3.4用for语句实现循环结构 3.4.1什么是循环结构 循环结构又称重复结构&#xff0c;是利用计算机运算速度快以及能进行逻辑控制的特点来重复执行某些操作。 3.4.2for语句 for 循环变量表达式1&#xff1a;表达式2&#xff1a;表达式3 循环体语句 end 说明&…...

matlab编写的BM3D图像去噪方法

BM3D&#xff08;Block-Matching and 3D Filtering&#xff09;是一种基于块匹配和三维滤波的图像去噪方法&#xff0c;广泛应用于图像处理领域。它通过在图像中寻找相似的块&#xff0c;并将这些块堆叠成三维数组进行滤波处理&#xff0c;从而有效地去除噪声&#xff0c;同时保…...

当科技邂逅浪漫:在Codigger的世界里,遇见“爱”

520&#xff0c;一个充满爱意的日子&#xff0c;人们用各种方式表达对彼此的深情。而在科技的世界里&#xff0c;我们也正经历着一场特别的邂逅——Codigger&#xff0c;一个分布式操作系统的诞生&#xff0c;正在以它独特的方式&#xff0c;重新定义我们与技术的关系。 Codigg…...

深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法

前置阅读&#xff0c;了解什么是类属性、实例属性&#xff0c;对于理解类方法、实例方法会有帮助&#xff1a;Python 中的类属性与实例属性详解 0、总体介绍 在 Python 中&#xff0c;方法&#xff08;method&#xff09; 是定义在类&#xff08;class&#xff09;内部的函数&…...

游戏开发实战(二):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】

文章目录 奇美拉和队列奇美拉被动技能多对多观察者关系实现自定义元类奇美拉基类 管理奇美拉的队列奇美拉队列类心得体会扩展 规则定义工作相关奇美拉相关 奇美拉属性 在本篇博文&#xff0c;我将介绍本项目的整体框架&#xff0c;以及“编码规则”&#xff0c;这些规则保证了本…...

Python实战:打造一个功能完整的单位转换器(长度/温度/货币)

&#x1f4da; 文章导读 在本文中&#xff0c;我将为大家介绍如何使用Python开发一个实用的单位转换器。这个项目不仅适合Python初学者练手&#xff0c;也能帮助你更好地理解Python的基础语法和函数设计。 &#x1f50d; 主要特性 ✅ 支持多种长度单位互转&#xff08;米、千…...

嵌入式学习笔记 D24 :系统编程之i/o操作

系统编程基本概念及一般组成文件的常见i/o操作 一、系统编程基本概念及一般组成 系统编程属于应用程序编程&#xff0c;即在操作系统运行成功的基础上执行程序。其一般包含以下四部分&#xff1a; 1&#xff09;文件&#xff1a;存储在存储设备上的相关信息集合&#xff0c;是…...

利用朴素贝叶斯对UCI 的 mushroom 数据集进行分类

朴素贝叶斯&#xff08;Naive Bayes&#xff09;是一种基于贝叶斯定理的简单而有效的分类算法&#xff0c;特别适合处理文本分类和多类别分类问题。UCI的Mushroom数据集是一个经典的分类数据集&#xff0c;包含蘑菇的特征和类别&#xff08;可食用或有毒&#xff09;。 1. 数据…...

Index-AniSora模型论文速读:基于人工反馈的动漫视频生成

Aligning Anime Video Generation with Human Feedback 一、引言 论文开头指出&#xff0c;尽管视频生成模型不断涌现&#xff0c;但动漫视频生成面临动漫数据稀缺和运动模式异常的挑战&#xff0c;导致生成视频存在运动失真和闪烁伪影等问题&#xff0c;难以满足人类偏好。现…...

FineBI 和 Axure工具比较——数据分析VS原型设计

FineBI和Axure是两款定位截然不同的工具&#xff0c;分别服务于数据分析和原型设计领域。以下从核心功能、应用场景、操作门槛等维度进行对比分析&#xff1a; 一、核心功能对比 FineBI 作为商业智能&#xff08;BI&#xff09;工具&#xff0c;聚焦于数据整合、清洗、分析及可…...

跟踪AI峰会,给自己提出的两个问题。

踪红杉AI峰会全纪录&#xff1a;AI打开万亿美元市场&#xff0c;卖的不是工具&#xff0c;而是收益。 原文链接&#xff1a; 红杉AI峰会全记录&#xff1a;AI打开万亿美元市场&#xff0c;卖的不是工具&#xff0c;而是收益&#xff08;全文&#xff09;_腾讯新闻 自己的学习…...

分布式ID生成器:原理、对比与WorkerID实战

一、为什么需要分布式ID&#xff1f; 在微服务架构下&#xff0c;单机自增ID无法满足跨服务唯一性需求&#xff0c;且存在&#xff1a; • 单点瓶颈&#xff1a;数据库自增ID依赖单表写入 • 全局唯一性&#xff1a;跨服务生成可能重复 • 扩展性差&#xff1a;分库分表后ID规…...

AR 开启昆虫学习新视界,解锁奇妙微观宇宙

在传统昆虫学习中&#xff0c;课堂教学是主要方式&#xff0c;老师通过板书、PPT 传授知识&#xff0c;但学生被动接受&#xff0c;书本静态图片无法展现昆虫真实比例、立体形态&#xff0c;学生难以直观感受复杂身体结构。博物馆的昆虫标本也是学习途径&#xff0c;不过标本放…...

WPF技巧-常用的Converter集合(更新ing)

文章目录 [toc]&#x1f9e9; 示例 1&#xff1a;BooleanToVisibilityConverter&#x1f9e9; 示例 2&#xff1a;InvertedBooleanToVisibilityConverter&#x1f9e9; 示例 3&#xff1a;StringToColorConverter&#x1f9e9; 示例 4&#xff1a;StringToBrushConverter&#…...

PostGIS栅格数据类型解析【raster】

PostGIS 栅格数据类型解析&#xff1a;结构、转换与应用 一、栅格数据类型概述 在 PostGIS 中&#xff0c;raster 是用于存储和处理栅格数据的核心类型&#xff0c;支持从多种格式&#xff08;如 JPEG、GeoTIFF、PNG、DEM&#xff09;导入的数据。每个栅格由一个或多个波段&a…...

985,成立人工智能学院

5月17日&#xff0c;北京理工大学AI变革与科教创新论坛暨人工智能学院成立大会在中关村校区举行。 北京理工大学校长姜澜介绍了学校近年来高质量发展取得的成绩。他表示&#xff0c;北京理工大学对人工智能高度重视、提前布局&#xff0c;具备扎实基础。学校将通过“一零一一”…...

使用 ARCore 和 Kotlin 开发 Android 增强现实应用入门指南

环境准备 1. 工具与设备要求 Android Studio&#xff1a;Arctic Fox 或更高版本设备&#xff1a;支持 ARCore 的 Android 设备&#xff08;查看支持列表&#xff09;依赖库&#xff1a;// build.gradle (Module级) dependencies {implementation com.google.ar:core:1.35.0im…...

房贷利率计算前端小程序

利率计算前端小程序 视图效果展示如下&#xff1a; 在这里插入代码片 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&qu…...

剧本杀小程序:指尖上的沉浸式推理宇宙

在推理热潮席卷社交圈的当下&#xff0c;你是否渴望随时随地开启一场烧脑又刺激的冒险&#xff1f;我们的剧本杀小程序&#xff0c;就是你掌心的“推理魔法盒”&#xff0c;一键解锁无限精彩&#xff01; 海量剧本库&#xff0c;满足多元口味&#xff1a;小程序汇聚了从古风权…...

shp2pgsql 导入 Shp 到 PostGIS 空间数据库

前言 ❝ shp2pgsql是PostGIS自带的命令行工具&#xff0c;用于将Shapefile文件声称SQL脚本导入到PostGIS空间数据库。 1. 安装 PostGIS 通过Application Stack Builder或者下载单独的PostGIS包进行安装。而shp2pgsql则是与PostGIS工具集成在一起&#xff0c;无需单独下载。该命…...

什么是 ERP、MES、PLM,生产制造中如何应用

生产制造领域数字化转型加速背景下&#xff0c;ERP、MES、PLM 系统的应用成为企业提升竞争力的关键。然而&#xff0c;部分企业因对三者功能认知模糊、系统搭配不当、实施流程缺失&#xff0c;导致生产计划混乱、库存失衡、质量管控失效等问题频发。明晰系统功能定位与协同逻辑…...