GO-SDK标准库2:math

本文介绍使用Go语言中的math/big包进行大整数运算的方法,包括加减乘除等基本操作。通过具体实例展示了如何创建大整数并执行各种算术运算。
package main

import (
    "math/big"
    "fmt"
)

func main() {

    //创建大数(值可以突破int64)
    bigInt1 := big.NewInt(123)
    bigInt2 := new(big.Int)
    bigInt2.SetString("314159265358979323846264338327950288419716939937510582097494459", 10)
    fmt.Printf("type=%T,value=%v\n",bigInt1,bigInt1)
    fmt.Printf("type=%T,value=%v\n",bigInt2,bigInt2)

    //大数的计算
    bigx := big.NewInt(1)
    big1 := big.NewInt(11)
    big2 := big.NewInt(3)
    fmt.Println(bigx.Add(big1, big2),bigx)//14
    fmt.Println(bigx.Sub(big1, big2),bigx)//8
    fmt.Println(bigx.Mul(big1, big2),bigx)//33
    fmt.Println(bigx.Div(big1, big2),bigx)//3
    fmt.Println(bigx.Mod(big1, big2),bigx)//2
    fmt.Println(bigx.And(big1, big2),bigx)//3
    fmt.Println(bigx.Or(big1, big2),bigx)//11
    fmt.Println(bigx.Xor(big1, big2),bigx)//8

    //每一步的结果都重新给bigx赋值,所以事实上得到的是最后一步的结果
    fmt.Println(bigx.Add(big1,big2).Sub(big1,big2).Mul(big1,big2).Div(big1,big2))

    //(11+3)*2%3=1
    fmt.Println(bigx.Mod((bigx.Mul((bigx.Add(big1, big2)),big.NewInt(2))),big.NewInt(3)))
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值