Big Number - GoblinBear/beson-go GitHub Wiki

Types

  • UInt128 / Int128
  • UInt256 / Int256
  • UInt512 / Int512
  • UIntVar / 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)