math/big包之Int-------有理數(shù)
在這里定義了一個(gè)Int的類(lèi)型,在這個(gè)類(lèi)型中包括了對(duì)數(shù)字的bit,加減乘除,以及位運(yùn)算等操作谒养。
下面記錄一下幾個(gè)是常用的幾種方法
type Word
type Word uintptr
Word代表一個(gè)多精度無(wú)符號(hào)整數(shù)的單個(gè)數(shù)字掰烟。
type Int
type Int struct {
// 內(nèi)含隱藏或非導(dǎo)出字段
}
Int類(lèi)型代表多精度的整數(shù),零值代表數(shù)字0。
func NewInt
func NewInt(x int64) *Int
創(chuàng)建一個(gè)值為x的*Int。
func (*Int) Bits
func (x *Int) Bits() []Word
提供了對(duì)x的數(shù)據(jù)不檢查而快速的訪問(wèn),返回構(gòu)成x的絕對(duì)值的小端在前的word切片悬槽。該切片與x的底層是同一個(gè)數(shù)組,本函數(shù)用于支持在包外實(shí)現(xiàn)缺少的低水平功能瞬浓,否則不應(yīng)被使用初婆。
func (*Int) Bit
func (x *Int) Bit(i int) uint
返回第i個(gè)字位的值,即返回(x>>i)&1猿棉。i必須不小于0磅叛。
func (*Int) MulRange
func (z *Int) MulRange(a, b int64) *Int
將z設(shè)置為區(qū)間[a, b]內(nèi)所有整數(shù)的乘積A(a, b),并返回z萨赁。如果a>b會(huì)將z設(shè)為1并返回弊琴。
func (*Int) Binomial
func (z *Int) Binomial(n, k int64) *Int
將z設(shè)為k次二項(xiàng)式展開(kāi)第n項(xiàng)的系數(shù)C(n, k),并返回z杖爽。
func (*Int) Rand
func (z *Int) Rand(rnd *rand.Rand, n *Int) *Int
將z設(shè)為一個(gè)范圍在[0, n)的偽隨機(jī)值敲董,并返回z。
func (*Int) Sign
func (x *Int) Sign() int
返回x的正負(fù)號(hào)慰安。x<0時(shí)返回-1腋寨;x>0時(shí)返回+1;否則返回0化焕。
func (*Int) Cmp
func (x *Int) Cmp(y *Int) (r int)
比較x和y的大小萄窜。x<y時(shí)返回-1;x>y時(shí)返回+1;否則返回0查刻。
func (*Int) Not
func (z *Int) Not(x *Int) *Int
將z設(shè)為^x并返回z(按位取反)番宁。
func (*Int) And
func (z *Int) And(x, y *Int) *Int
將z設(shè)為x & y并返回z(按位且)。
func (*Int) Or
func (z *Int) Or(x, y *Int) *Int
將z設(shè)為x | y并返回z(按位或)赖阻。
func (*Int) Xor
func (z *Int) Xor(x, y *Int) *Int
將z設(shè)為x ^ y并返回z(按位異或)。
func (*Int) AndNot
func (z *Int) AndNot(x, y *Int) *Int
將z設(shè)為x & (^y)并返回z(按位減)踱蠢。
func (*Int) Lsh
func (z *Int) Lsh(x *Int, n uint) *Int
將z設(shè)為x << n并返回z(左位移運(yùn)算)火欧。
func (*Int) Rsh
func (z *Int) Rsh(x *Int, n uint) *Int
將z設(shè)為x >> n并返回z(右位移運(yùn)算)。
func (*Int) Abs
func (z *Int) Abs(x *Int) *Int
將z設(shè)為|x|并返回z茎截。
func (*Int) Neg
func (z *Int) Neg(x *Int) *Int
將z設(shè)為-x并返回z苇侵。