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

EtherCAT主站IGH-- 2 -- IGH之coe_emerg_ring.h/c文件解析

EtherCAT主站IGH-- 2 -- IGH之coe_emerg_ring.h/c文件解析

  • 0 预览
  • 一 该文件功能
    • `coe_emerg_ring.c` 文件功能函数预览
  • 二 函数功能介绍
    • `coe_emerg_ring.c` 中主要函数的作用
        • 1. `ec_coe_emerg_ring_init`
        • 2. `ec_coe_emerg_ring_clear`
        • 3. `ec_coe_emerg_ring_size`
        • 4. `ec_coe_emerg_ring_push`
        • 5. `ec_coe_emerg_ring_pop`
        • 6. `ec_coe_emerg_ring_clear_ring`
        • 7. `ec_coe_emerg_ring_overruns`
  • 三 h文件翻译
  • 四 c文件翻译
  • 该文档修改记录:
  • 总结

0 预览

一 该文件功能

该文件定义了 EtherCAT CoE 紧急环形缓冲区的方法。EtherCAT 是一种实时以太网通信标准,广泛用于工业自动化控制系统。紧急环形缓冲区用于处理从站配置中的紧急消息,通过紧急消息环缓冲区,系统可以在有限的内存中存储并管理来自从站的紧急消息。

coe_emerg_ring.c 文件功能函数预览

函数功能和用途使用场景
ec_coe_emerg_ring_init初始化 EtherCAT CoE 紧急环形缓冲区。在应用程序启动时进行紧急环形缓冲区的初始化。
ec_coe_emerg_ring_clear清理 EtherCAT CoE 紧急环形缓冲区。在应用程序关闭或设备不再使用时进行清理操作。
ec_coe_emerg_ring_size设置紧急环形缓冲区的大小。在初始化或需要更改环形缓冲区大小时调用。
ec_coe_emerg_ring_push添加一个新的紧急消息到环形缓冲区。在接收到新的紧急消息时调用。
ec_coe_emerg_ring_pop从环形缓冲区中移除一个紧急消息。在需要处理或读取紧急消息时调用。
ec_coe_emerg_ring_clear_ring清空环形缓冲区。在需要清空紧急消息环形缓冲区时调用。
ec_coe_emerg_ring_overruns读取环形缓冲区的溢出次数。在需要获取环形缓冲区溢出次数时调用。

二 函数功能介绍

coe_emerg_ring.c 中主要函数的作用

1. ec_coe_emerg_ring_init
void ec_coe_emerg_ring_init(ec_coe_emerg_ring_t *ring, /**< Emergency ring. */ec_slave_config_t *sc /**< Slave configuration. */)
{ring->sc = sc;ring->msgs = NULL;ring->size = 0;ring->read_index = 0;ring->write_index = 0;ring->overruns = 0;
}
  • 功能和用途:初始化 EtherCAT CoE 紧急环形缓冲区。
  • 使用场景:在应用程序启动时进行紧急环形缓冲区的初始化。
2. ec_coe_emerg_ring_clear
void ec_coe_emerg_ring_clear(ec_coe_emerg_ring_t *ring /**< Emergency ring. */)
{if (ring->msgs) {kfree(ring->msgs);}
}
  • 功能和用途:清理 EtherCAT CoE 紧急环形缓冲区。
  • 使用场景:在应用程序关闭或设备不再使用时进行清理操作。
3. ec_coe_emerg_ring_size
int ec_coe_emerg_ring_size(ec_coe_emerg_ring_t *ring, /**< Emergency ring. */size_t size /**< Maximum number of messages in the ring. */)
{ring->size = 0;if (size < 0) {size = 0;}ring->read_index = ring->write_index = 0;if (ring->msgs) {kfree(ring->msgs);}ring->msgs = NULL;if (size == 0) {return 0;}ring->msgs = kmalloc(sizeof(ec_coe_emerg_msg_t) * (size + 1), GFP_KERNEL);if (!ring->msgs) {return -ENOMEM;}ring->size = size;return 0;
}
  • 功能和用途:设置紧急环形缓冲区的大小。
  • 使用场景:在初始化或需要更改环形缓冲区大小时调用。
4. ec_coe_emerg_ring_push
void ec_coe_emerg_ring_push(ec_coe_emerg_ring_t *ring, /**< Emergency ring. */const u8 *msg /**< Emergency message. */)
{if (!ring->size ||(ring->write_index + 1) % (ring->size + 1) == ring->read_index) {ring->overruns++;return;}memcpy(ring->msgs[ring->write_index].data, msg,EC_COE_EMERGENCY_MSG_SIZE);ring->write_index = (ring->write_index + 1) % (ring->size + 1);
}
  • 功能和用途:添加一个新的紧急消息到环形缓冲区。
  • 使用场景:在接收到新的紧急消息时调用。
5. ec_coe_emerg_ring_pop
int ec_coe_emerg_ring_pop(ec_coe_emerg_ring_t *ring, /**< Emergency ring. */u8 *msg /**< Memory to store the emergency message. */)
{if (ring->read_index == ring->write_index) {return -ENOENT;}memcpy(msg, ring->msgs[ring->read_index].data, EC_COE_EMERGENCY_MSG_SIZE);ring->read_index = (ring->read_index + 1) % (ring->size + 1);return 0;
}
  • 功能和用途:从环形缓冲区中移除一个紧急消息。
  • 使用场景:在需要处理或读取紧急消息时调用。
6. ec_coe_emerg_ring_clear_ring
int ec_coe_emerg_ring_clear_ring(ec_coe_emerg_ring_t *ring /**< Emergency ring. */)
{ring->read_index = ring->write_index;ring->overruns = 0;return 0;
}
  • 功能和用途:清空环形缓冲区。
  • 使用场景:在需要清空紧急消息环形缓冲区时调用。
7. ec_coe_emerg_ring_overruns
int ec_coe_emerg_ring_overruns(ec_coe_emerg_ring_t *ring /**< Emergency ring. */)
{return ring->overruns;
}
  • 功能和用途:读取环形缓冲区的溢出次数。
  • 使用场景:在需要获取环形缓冲区溢出次数时调用。

三 h文件翻译

这个头文件定义了 EtherCAT CoE(CANopen over EtherCAT)紧急消息的环形缓冲区结构和相关函数接口,包括初始化、清除、推入和弹出消息的函数。主要用于处理从站设备的紧急消息。 ​

/******************************************************************************\**  $Id$**  版权所有 (C) 2012 Florian Pose, Ingenieurgemeinschaft IgH**  本文件是 IgH EtherCAT 主站的一部分。**  IgH EtherCAT 主站是免费软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证第2版的条款重新分发和/或修改它。**  IgH EtherCAT 主站的分发目的是希望它有用,但没有任何保证;甚至没有适销性或特定用途适用性的隐含保证。详情请参阅 GNU 通用公共许可证。**  您应该已经收到了与 IgH EtherCAT 主站一起提供的 GNU 通用公共许可证的副本;如果没有,请写信给自由软件基金会,地址是:51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA。**  ---**  上述许可证仅适用于源代码。使用 EtherCAT 技术和品牌仅允许在遵守 Beckhoff Automation GmbH 的工业产权和类似权利的情况下使用。*****************************************************************************//**\fileEtherCAT CoE 紧急环形缓冲区结构。
*//*****************************************************************************/#ifndef __EC_COE_EMERG_RING_H__
#define __EC_COE_EMERG_RING_H__#include "globals.h"/*****************************************************************************//** EtherCAT CoE 紧急消息记录。*/
typedef struct {u8 data[EC_COE_EMERGENCY_MSG_SIZE]; /**< 消息数据。 */
} ec_coe_emerg_msg_t;/*****************************************************************************//** EtherCAT CoE 紧急环形缓冲区。*/
typedef struct {ec_slave_config_t *sc; /**< 拥有该环的从站配置。 */ec_coe_emerg_msg_t *msgs; /**< 消息环。 */size_t size; /**< 环的大小。 */unsigned int read_pos; /**< 读取位置。 */unsigned int write_pos; /**< 写入位置。 */unsigned int stored; /**< 已存储的消息数量。 */
} ec_coe_emerg_ring_t;/*****************************************************************************/void ec_coe_emerg_ring_init(ec_coe_emerg_ring_t *ring, ec_slave_config_t *sc, size_t size);
void ec_coe_emerg_ring_clear(ec_coe_emerg_ring_t *ring);
int ec_coe_emerg_ring_push(ec_coe_emerg_ring_t *ring, const u8 *data);
int ec_coe_emerg_ring_pop(ec_coe_emerg_ring_t *ring, u8 *data);/*****************************************************************************/#endif

四 c文件翻译

/******************************************************************************\**  $Id$**  版权所有 (C) 2012 Florian Pose, Ingenieurgemeinschaft IgH**  本文件是 IgH EtherCAT 主站的一部分。**  IgH EtherCAT 主站是免费软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证第2版的条款重新分发和/或修改它。**  IgH EtherCAT 主站的分发目的是希望它有用,但没有任何保证;甚至没有适销性或特定用途适用性的隐含保证。详情请参阅 GNU 通用公共许可证。**  您应该已经收到了与 IgH EtherCAT 主站一起提供的 GNU 通用公共许可证的副本;如果没有,请写信给自由软件基金会,地址是:51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA。**  ---**  上述许可证仅适用于源代码。使用 EtherCAT 技术和品牌仅允许在遵守 Beckhoff Automation GmbH 的工业产权和类似权利的情况下使用。**  vim: expandtab*****************************************************************************//** \file* EtherCAT CoE 紧急环形缓冲区方法。*//*****************************************************************************/#include <linux/slab.h>#include "coe_emerg_ring.h"/*****************************************************************************//** 紧急环形缓冲区构造函数。*/
void ec_coe_emerg_ring_init(ec_coe_emerg_ring_t *ring, /**< 紧急环。 */ec_slave_config_t *sc /**< 从站配置。 */)
{ring->sc = sc;ring->msgs = NULL;ring->size = 0;ring->read_index = 0;ring->write_index = 0;ring->overruns = 0;
}/*****************************************************************************//** 紧急环形缓冲区析构函数。*/
void ec_coe_emerg_ring_clear(ec_coe_emerg_ring_t *ring /**< 紧急环。 */)
{if (ring->msgs) {kfree(ring->msgs);}
}/*****************************************************************************//** 设置环的大小。** \return 成功时返回零,否则返回负错误代码。*/
int ec_coe_emerg_ring_size(ec_coe_emerg_ring_t *ring, /**< 紧急环。 */size_t size /**< 环中最大消息数。 */)
{ring->size = 0;if (size < 0) {size = 0;}ring->read_index = ring->write_index = 0;if (ring->msgs) {kfree(ring->msgs);}ring->msgs = NULL;if (size == 0) {return 0;}ring->msgs = kmalloc(sizeof(ec_coe_emerg_msg_t) * (size + 1), GFP_KERNEL);if (!ring->msgs) {return -ENOMEM;}ring->size = size;return 0;
}/*****************************************************************************//** 添加一个新的紧急消息。*/
void ec_coe_emerg_ring_push(ec_coe_emerg_ring_t *ring, /**< 紧急环。 */const u8 *msg /**< 紧急消息。 */)
{if (!ring->size ||(ring->write_index + 1) % (ring->size + 1) == ring->read_index) {ring->overruns++;return;}memcpy(ring->msgs[ring->write_index].data, msg,EC_COE_EMERGENCY_MSG_SIZE);ring->write_index = (ring->write_index + 1) % (ring->size + 1);
}/*****************************************************************************//** 从环形缓冲区中移除一个紧急消息。** \return 成功时返回零,否则返回负错误代码。*/
int ec_coe_emerg_ring_pop(ec_coe_emerg_ring_t *ring, /**< 紧急环。 */u8 *msg /**< 用于存储紧急消息的内存。 */)
{if (ring->read_index == ring->write_index) {return -ENOENT;}memcpy(msg, ring->msgs[ring->read_index].data, EC_COE_EMERGENCY_MSG_SIZE);ring->read_index = (ring->read_index + 1) % (ring->size + 1);return 0;
}/*****************************************************************************//** 清空环。** \return 成功时返回零,否则返回负错误代码。*/
int ec_coe_emerg_ring_clear_ring(ec_coe_emerg_ring_t *ring /**< 紧急环。 */)
{ring->read_index = ring->write_index;ring->overruns = 0;return 0;
}/*****************************************************************************//** 读取环溢出次数。** \return 溢出次数。*/
int ec_coe_emerg_ring_overruns(ec_coe_emerg_ring_t *ring /**< 紧急环。 */)
{return ring->overruns;
}/*****************************************************************************/

该文档修改记录:

修改时间修改说明
2024年6月28日EtherCAT主站IGH 该 文件解析

总结

以上就是EtherCAT主站IGH文件解析的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

相关文章:

EtherCAT主站IGH-- 2 -- IGH之coe_emerg_ring.h/c文件解析

EtherCAT主站IGH-- 2 -- IGH之coe_emerg_ring.h/c文件解析 0 预览一 该文件功能coe_emerg_ring.c 文件功能函数预览 二 函数功能介绍coe_emerg_ring.c 中主要函数的作用1. ec_coe_emerg_ring_init2. ec_coe_emerg_ring_clear3. ec_coe_emerg_ring_size4. ec_coe_emerg_ring_pus…...

psensor 的手势功能

psensor 的手势功能的移植过程 有时间再来写下...

使用 nvm 管理 Node 版本及 pnpm 安装

文章目录 GithubWindows 环境Mac/Linux 使用脚本进行安装或更新Mac/Linux 环境变量nvm 常用命令npm 常用命令npm 安装 pnpmNode 历史版本 Github https://github.com/nvm-sh/nvm Windows 环境 https://nvm.uihtm.com/nvm.html Mac/Linux 使用脚本进行安装或更新 curl -o- …...

uni-appx使用form表单页面初始化报错

因为UniFormSubmitEvent的类型时 e-->detail-->value,然后没有了具体值。所以页面初始化的时候 不能直接从value取值&#xff0c;会报错找不到 所以form表单里的数据我们要设置成一个对象来存放 这个问题的关键在于第22行代码 取值&#xff1a; 不能按照点的方式取值 …...

TiDB-从0到1-数据导出导入

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容 一、数据导出 TiDB中通过Dumpling来实现数据导出&#xff0c;与MySQL中的mysqldump类似&#xff0c;其属于…...

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-16自定义层

16自定义层 import torch import torch.nn.functional as F from torch import nnclass CenteredLayer(nn.Module):def __init__(self):super().__init__()#从其输入中减去均值#X.mean() 计算的是整个张量的均值#希望计算特定维度上的均值&#xff0c;可以传递 dim 参数。#例如…...

树莓派4设置

使用sudo命令时要求输入密码 以 sudo 为前缀的命令以超级用户身份运行。默认情况下&#xff0c;超级用户不需要密码。不过&#xff0c;您可以要求所有以 sudo 运行的命令都输入密码&#xff0c;从而提高 Raspberry Pi 的安全性。 要强制 sudo 要求输入密码&#xff0c;请为你…...

44.商城系统(二十五):k8s基本操作,ingress域名访问,kubeSphere可视化安装

上一章我们已经配置好了k8s集群,如果没有配置好先去照着上面的配。 一、k8s入门操作 1.部署一个tomcat,测试容灾恢复 #在主机器上执行 kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8#查看k8s中的所有资源 kubectl get all kubectl get all -o wide#查看po…...

MySQL高级查询

MySQL 前言 文本源自微博客 (www.microblog.store),且已获授权. 一. mysql基础知识 1. mysql常用系统命令 启动命令 net start mysql停止命令 net stop mysql登录命令 mysql -h ip -P 端口 -u 用户名 -p ​ 本机可以省略 ip mysql -u 用户名 -p 查看数据库版本 mysql --ve…...

聊聊啥项目适合做自动化测试

作为测试从业者&#xff0c;你是否遇到过这样的场景&#xff0c;某天公司大Boss找你谈话。 老板&#xff1a;小李&#xff0c;最近工作辛苦了 小李&#xff1a;常感谢您的认可&#xff0c;这不仅是对我个人的鼓励&#xff0c;更是对我们整个团队努力的认可。我们的成果离不开每…...

ROS2开发机器人移动

.创建功能包和节点 这里我们设计两个节点 example_interfaces_robot_01&#xff0c;机器人节点&#xff0c;对外提供控制机器人移动服务并发布机器人的状态。 example_interfaces_control_01&#xff0c;控制节点&#xff0c;发送机器人移动请求&#xff0c;订阅机器人状态话题…...

【强化学习】第02期:动态规划方法

笔者近期上了国科大周晓飞老师《强化学习及其应用》课程&#xff0c;计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处&#xff0c;敬请批评指正。 文章目录 2.1 动态规划&#xff1a;策略收敛法/策略迭代法2.2 动态规划&#xf…...

安全技术和防火墙(二)

接上一节 备份和还原 iptables-save > /opt/iptables.bak iptables-restore < /opt/iptables.bak snat和dnat snat源地址转换 内网到外网 内网ip转换成可以访问外网的ip 内网的多个主机可以只有一个有效的公网ip地址访问外部网络 dnat 目的地址转发 外部用户&#…...

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中&#xff0c;数码管被广泛应用于各种电子设备中&#xff0c;如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中&#xff0c;我们将探讨数码管的工作原理…...

三星DRAM、NAND,“又双叒叕”带头涨价了

据韩国媒体《每日经济新闻》报道&#xff0c;三星电子计划在第三季度上调服务器DRAM和企业级NAND闪存的价格&#xff0c;涨幅预计在15%-20%&#xff0c;主要受人工智能(AI)需求激增的推动。这一举措有望提振公司下半年业绩。 据《经济日报》报道援引业内消息&#xff0c;由于厂…...

星戈瑞FITC-PEG2000-Biotin的生物相容性

生物相容性是指材料与生物体之间相互作用时&#xff0c;材料对生物体无毒、无刺激&#xff0c;且能够被生物体接受并正常发挥其功能的特性。 FITC-PEG2000-Biotin作为一种荧光标记试剂&#xff0c;在细胞成像、药物传递和生物标志物检测等领域具有诸多应用前景。 FITC-PEG2000…...

数据资产管理的艺术:构建智能化、精细化的数据资产管理体系,从数据整合、分析到决策支持,为企业提供一站式的数据资产解决方案,助力企业把握数字时代的新机遇

一、引言 在数字化浪潮席卷全球的今天&#xff0c;数据已经成为企业最重要的资产之一。如何高效、安全地管理这些海量数据&#xff0c;从中提取有价值的信息&#xff0c;并将其转化为决策支持&#xff0c;是每个企业都必须面对的挑战。本文将探讨数据资产管理的艺术&#xff0…...

基于Java微信小程序校园自助打印系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…...

股票复盘思路

股票复盘是一个回顾和分析市场及个人交易决策的过程,旨在从过去的表现中学习并优化未来的投资策略。以下是一些基本的股票复盘步骤和关注点: 市场概况回顾: 观察并记录每日市场的整体表现,包括大盘指数涨跌、成交量变化。统计涨停和跌停个股的数量,了解市场情绪和活跃度。…...

OpenGL系列(六)摄像机

在 OpenGL系列&#xff08;六&#xff09;变换 中&#xff0c;一个目标物体经过模型矩阵、观察矩阵和投影矩阵的变换才能正常显示出来&#xff0c;其中模型矩阵主要针对目标物体&#xff0c;它会影响物体的位姿。观察矩阵和投影矩阵主要针对观察者而已&#xff0c;这两个变换决…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...