iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Golang实现Biginteger大数计算实例详解
  • 893
分享到

Golang实现Biginteger大数计算实例详解

2024-04-02 19:04:59 893人浏览 薄情痞子
摘要

正文 golang中的big.Int库支持大数计算,基于这个库封装了一层Bitinteger,支持字符串类型的大数,加减乘除等计算。 其他计算可以参考基于big.Int来实现。 pa

正文

golang中的big.Int库支持大数计算,基于这个库封装了一层Bitinteger,支持字符串类型的大数,加减乘除等计算。

其他计算可以参考基于big.Int来实现。

package BigIntege
import (
    "fmt"
    "math/big"
)
const DecBase = 10
// BigInteger wrapper for big.Int
type BigInteger struct {
    Value *big.Int
}
func NewBigInteger(value string) \*BigInteger {
    var val big.Int
    newVal, ok := val.SetString(value, DecBase)
    if ok {
        return &BigInteger{
            Value: newVal,
        }
    }
    return NewZeroBigInteger()
}
func NewZeroBigInteger() *BigInteger {
    return &BigInteger{
        Value: big.NewInt(0),
    }
}
func (x *BigInteger) Add(y *BigInteger) {
    x.Value = x.Value.Add(x.Value, y.Value)
}
func (x *BigInteger) Sub(y *BigInteger) {
    x.Value = x.Value.Sub(x.Value, y.Value)
}
// Cmp compares x and y and returns:
//
//   -1 if x <  y
//    0 if x == y
//   +1 if x >  y
func (x *BigInteger) Cmp(y *BigInteger) int {
    return x.Value.Cmp(y.Value)
}
func (x *BigInteger) String() string {
    return x.Value.String()
}
// Sum 加法
func Sum(x, y *BigInteger) *BigInteger {
    z := NewZeroBigInteger()
    z.Add(x)
    z.Add(y)
    return z
}
// Sub 减法
func Sub(x, y *BigInteger) *BigInteger {
    z := NewBigInteger(x.String())
    z.Sub(y)
    return z
}
// Mul 惩罚
func Mul(x, y \*BigInteger) \*BigInteger {
    t := NewZeroBigInteger()
    z := t.Value.Mul(x.Value, y.Value)
    return &BigInteger{Value: z}
}
// Div 除法
func Div(x, y *BigInteger) *BigInteger {
    t := NewZeroBigInteger()
    z := t.Value.Div(x.Value, y.Value)
    return &BigInteger{Value: z}
}
func isValidBigInt(val string) error {
    _, ok := big.NewInt(0).SetString(val, 10)
    if !ok {
        return fmt.Errorf("parse string to big.Int failed, actual: %s", val)
    }
    return nil
}

以上就是Golang实现Biginteger大数计算实例详解的详细内容,更多关于Golang Biginteger大数计算的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Golang实现Biginteger大数计算实例详解

本文链接: https://www.lsjlt.com/news/165058.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Golang实现Biginteger大数计算实例详解
    正文 Golang中的big.Int库支持大数计算,基于这个库封装了一层Bitinteger,支持字符串类型的大数,加减乘除等计算。 其他计算可以参考基于big.Int来实现。 pa...
    99+
    2024-04-02
  • Java 处理超大数类型之BigInteger案例详解
    一、BigInteger介绍 如果在操作的时候一个整型数据已经超过了整数的最大类型长度 long 的话,则此数据就无法装入,所以,此时要使用 BigInteger 类进行操作。这些大...
    99+
    2024-04-02
  • Golang实现AES对称加密算法实例详解
    目录前言前置知识生成随机数生成随机字符串加密和解密加密解密总结前言 安全总是相对的,对于敏感数据最好要有一定保护措施,尤其是在线数据,通过加密可转换信息为编码,从而防止非法获取。对开...
    99+
    2023-02-21
    golang 对称加密 go语言aes加密 对称加密 aes
  • Golang信号量设计实现示例详解
    目录开篇信号量semaphore 扩展库实现AcquireReleaseTryAcquire总结开篇 在我们此前的文章 Golang Mutex 原理解析 中曾提到过,Mutex 的...
    99+
    2024-04-02
  • Java的大数型BigInteger与BigDecimal类实例分析
    这篇文章主要讲解了“Java的大数型BigInteger与BigDecimal类实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的大数型BigInteger与BigDecima...
    99+
    2023-06-30
  • 怎么在Java项目中利用BigInteger 实现大数字运算
    这篇文章给大家介绍怎么在Java项目中利用BigInteger 实现大数字运算,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。        ...
    99+
    2023-05-31
    java ava biginteger
  • JavaScript实例--实现计算器
    目录一、实例代码二、实例演示三、实例剖析一、实例代码 HTML: <!DOCTYPE html> <html lang="en"> <head> ...
    99+
    2024-04-02
  • Qt实现可以计算大数的简单计算器
    目录1、简介2、作品演示3、重点原理讲解4、代码主体框架1、简介 计算器是我们生活中很常见的东西,它可以由多种语言多种方式来实现,今天我想讲的是基于C++语言,由QT实现的可以计算大...
    99+
    2022-12-12
    Qt 大数运算 计算器 Qt 计算器 Qt 大数运算
  • JS实现大数相加大数相乘示例详解
    目录JS大数相加、大数相乘一、实现两个大数相加二、实现两个大数相乘JS大数相加、大数相乘 JavaScript 只有一种数字类型,可以使用也可以不使用小数点来书写数字。 在 Java...
    99+
    2022-11-13
    JS大数相加相乘 JS大数
  • Java实现大数运算的实例代码
    一、大数运算介绍大数运算,顾名思义,就是很大的数值的数进行一系列的运算。它是指由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算,于是产生了大数运算。二、Java...
    99+
    2023-05-31
    java 大数运算 ava
  • C#实现公式计算验证码的示例详解
    目录场景需求开发环境开发工具实现代码实现效果场景 现在很多的平台已经不使用普通的数字、字母等验证码了,取而代之的是拼图类、选图类、旋转类或者计算类的验证码。关于字母数字或者中文验证码...
    99+
    2024-04-02
  • Spring 和 PHP:如何实现大数据实时计算?
    在当今数字化时代,大数据已经成为了许多企业业务运营的必备资源。随着数据的不断增长和各类数据分析技术的不断发展,实时计算已经成为了大数据处理的重要组成部分。本文将介绍如何使用 Spring 和 PHP 实现大数据实时计算。 一、什么是实时计...
    99+
    2023-09-15
    大数据 实时 spring
  • 微信小程序计算器实例详解
    微信小程序计算器实例,供大家参考,具体内容如下 index.wxml <view class="content"> <view class="num"...
    99+
    2024-04-02
  • 基于Python实现计算纳什均衡的示例详解
    目录Nashpy 库计算两个参与者的纳什均衡手动计算纳什均衡使用了 PuLP 库计算纳什均衡总结纳什均衡是一种博弈论中的概念,它描述了一种平衡状态,其中每个参与者都不能通过独立改变其...
    99+
    2023-02-06
    Python计算纳什均衡 Python 纳什均衡
  • C++日期类计算器的模拟实现举例详解
    目录日期类计算器的模拟实现::1.获取某年某月的天数2.构造函数3.拷贝构造函数4.赋值运算符重载5.析构函数6.日期+=天数7.日期+天数8.日期-天数9.日期-=天数10.前置+...
    99+
    2023-05-18
    C++日期类计算器 c++ 计算日期 c++计算日期对应的天数
  • C++设计与实现ORM系统实例详解
    目录介绍依赖关系设计思路项目进度数据库通用接口实例构造智能查询方式设计单元测试运行方法介绍 我们通用的ORM,基本模式都是想要脱离数据库的,几乎都在编程语言层面建立模型,由程序去与数...
    99+
    2024-04-02
  • PHP如何实现高效的大数据计算?
    PHP是一种广泛使用的编程语言,许多大型企业和组织都使用PHP来处理他们的数据。在大数据时代,处理庞大的数据集已成为一种越来越重要的能力。因此,PHP如何实现高效的大数据计算已经成为了一个热门话题。在本文中,我们将讨论如何使用PHP来进行高...
    99+
    2023-09-16
    大数据 numy 并发
  • TypeScript十大排序算法插入排序实现示例详解
    目录一. 插入排序的定义二. 插入排序的流程三. 插入排序的图解四. 插入排序的代码五. 插入排序的时间复杂度六. 插入排序的总结一. 插入排序的定义 插入排序就像是你打扑克牌,你...
    99+
    2023-02-23
    TypeScript插入排序算法 TypeScript 算法
  • java实现飞机大战案例详解
    前言 飞机大战是一个非常经典的案例,因为它包含了多种新手需要掌握的概念,是一个非常契合面向对象思想的入门练习案例 程序分析: 在此游戏中共有六个对象: 小敌机Airplane,大敌机...
    99+
    2024-04-02
  • Vue3+vueuse实现放大镜示例详解
    目录前言准备工作功能实现完整实现代码结束语前言 给大家带来一种潮流的方式,实现放大镜效果,安排 准备工作 下包: yarn add @vueuse/core或 npm i @vueu...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作