Big Number - GoblinBear/beson-go GitHub Wiki
Types
UInt128/Int128UInt256/Int256UInt512/Int512UIntVar/IntVar
Initializes New Data
// unsigned integer
v1 := types.NewUInt128("18446744073709551618254", 10)
v2 := types.NewUInt256("18446744073709551618254", 10)
v3 := types.NewUInt512("18446744073709551618254", 10)
v4 := types.NewUIntVar("18446744073709551618254", 10, 32)
// signed integer
v5 := types.NewUInt128("-18446744073709551618254", 10)
v6 := types.NewUInt128("-18446744073709551618254", 10)
v7 := types.NewUInt128("-18446744073709551618254", 10)
v8 := types.NewUInt128("-18446744073709551618254", 10, 32)
Get Data Value
Call method Get()
v := types.NewUInt256(2)
data := v.Get()
Set Data Value
Call method Set()
newValue := []byte{
208, 8, 0, 0, 0, 0, 0, 0, 232, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
v := types.NewUInt256(2)
v.Set(newValue)
Shift Operations
LShift()RShift()
v1 := types.NewUInt256("256848659713813", 10)
v2 := v1.LShift(13)
Logical Operations
Not()And()Or()Xor()
v1 := types.NewUInt256("256848659713813", 10)
v2 := types.NewUInt256("1684661315868486", 10)
// not v1
r1 := v1.Not()
// v1 and v2
r2 := v1.And(v2)
Arithmetic Operations
Add()Sub()Multiply()Divide()Modulo()
v1 := types.NewUInt256("256848659713813", 10)
v2 := types.NewUInt256("1684661315868486", 10)
// v1 add v2
r := v1.Add(v2)