去:如何划分庞大的数字?

时间:2016-06-28 23:26:13

标签: math go

我是Golang的新手,我的问题是:

我有两个64字节的字节数组,让它们命名为#34; A"和" B"。每个数组都代表一个无符号整数。

我希望生成另一个64字节的数组" R"代表(A / B)的结果。

有什么想法吗?

// pre-condition: A and B have 64 bytes each
// A and B each represent an unsigned integer
// R = (A / B)

func divideByteArrays(A, B []byte) []byte {
    R := make([]byte, 64)
    // ... do something ...
    return R
}

提前致谢!

编辑:

可以使用" math / big"实现这一目标?

1 个答案:

答案 0 :(得分:4)

https://play.golang.org/p/T5R8fB8q60

package main

import (
    "math/big"
    "fmt"
)

func divideByteArrays(A, B []byte) []byte {
    var AI, BI, R big.Int
    AI.SetBytes(A)
    BI.SetBytes(B)
    R.Div(&AI, &BI)
    return R.Bytes()
}

func main() {
    a_array := make([]byte, 64)
    b_array := make([]byte, 64)

    for i := 0; i < 64; i++ {
        a_array[i] = 4
        b_array[i] = 2
    }

    fmt.Println(divideByteArrays(a_array, b_array))
}