math/big包之Int-------有理数

math/big包之Int-------有理数

在这里定义了一个Int的类型,在这个类型中包括了对数字的bit,加减乘除,以及位运算等操作。
下面记录一下几个是常用的几种方法

type Word

type Word uintptr

Word代表一个多精度无符号整数的单个数字。

type Int

type Int struct {
    // 内含隐藏或非导出字段
}

Int类型代表多精度的整数,零值代表数字0。

func NewInt

func NewInt(x int64) *Int

创建一个值为x的*Int。

func (*Int) Bits

func (x *Int) Bits() []Word

提供了对x的数据不检查而快速的访问,返回构成x的绝对值的小端在前的word切片。该切片与x的底层是同一个数组,本函数用于支持在包外实现缺少的低水平功能,否则不应被使用。

func (*Int) Bit

func (x *Int) Bit(i int) uint

返回第i个字位的值,即返回(x>>i)&1。i必须不小于0。

func (*Int) MulRange

func (z *Int) MulRange(a, b int64) *Int

将z设置为区间[a, b]内所有整数的乘积A(a, b),并返回z。如果a>b会将z设为1并返回。

func (*Int) Binomial

func (z *Int) Binomial(n, k int64) *Int

将z设为k次二项式展开第n项的系数C(n, k),并返回z。

func (*Int) Rand

func (z *Int) Rand(rnd *rand.Rand, n *Int) *Int

将z设为一个范围在[0, n)的伪随机值,并返回z。

func (*Int) Sign

func (x *Int) Sign() int

返回x的正负号。x<0时返回-1;x>0时返回+1;否则返回0。

func (*Int) Cmp

func (x *Int) Cmp(y *Int) (r int)

比较x和y的大小。xy时返回+1;否则返回0。

func (*Int) Not

func (z *Int) Not(x *Int) *Int

将z设为^x并返回z(按位取反)。

func (*Int) And

func (z *Int) And(x, y *Int) *Int

将z设为x & y并返回z(按位且)。

func (*Int) Or

func (z *Int) Or(x, y *Int) *Int

将z设为x | y并返回z(按位或)。

func (*Int) Xor

func (z *Int) Xor(x, y *Int) *Int

将z设为x ^ y并返回z(按位异或)。

func (*Int) AndNot

func (z *Int) AndNot(x, y *Int) *Int

将z设为x & (^y)并返回z(按位减)。

func (*Int) Lsh

func (z *Int) Lsh(x *Int, n uint) *Int

将z设为x << n并返回z(左位移运算)。

func (*Int) Rsh

func (z *Int) Rsh(x *Int, n uint) *Int

将z设为x >> n并返回z(右位移运算)。

func (*Int) Abs

func (z *Int) Abs(x *Int) *Int

将z设为|x|并返回z。

func (*Int) Neg

func (z *Int) Neg(x *Int) *Int

将z设为-x并返回z。

你可能感兴趣的:(math/big包之Int-------有理数)