从Java到Go的字符串模Int

时间:2018-12-18 09:57:26

标签: javascript go binary int modulo

我正在尝试将此代码从Javascript转换为Go。

if(secret_binary % secret_alphabet_bitlength > 0) {
    secret_binary += zeropad("0", secret_alphabet_bitlength - (secret_binary % secret_alphabet_bitlength));
}

secret_binary是string(代表二进制文件)。
secret_alphabet_bitlength是int(准确地说是6)。

注意:zeropad功能只是添加所需的0数。我将其替换为for循环,如下所示。

根据我对本主题Remainder/Modulus of string is a number的了解,ToNumber应用于不是字符串的值。

好,那是我尝试过的。

bToBig, _ := new(big.Int).SetString(secretBinary, 2)
nb := int64(secretAlphabetBitLength) - (bToBig.Int64() % int64(secretAlphabetBitLength))
if bToBig.Int64()%int64(secretAlphabetBitLength) > 0 {
    for i := 0; int64(i) < nb; i++ {
        secretBinary += "0"
    }
}

对于Javascript代码和Golang代码,此000001001100010000000001000111000001000000都将变成0000010011000100000000010001110000010000000000。如果可以的话,这是“有效的”。

但是,根据Javascript代码,此001011001001000100001110000001010000010000000101000100000000000010011001000000010000001001010010000001010100000101010011000000应该变成0010110010010001000011100000010100000100000001010001000000000000100110010000000100000010010100100000010101000001010100110000000000,但这就是我得到的00101100100100010000111000000101000001000000010100010000000000001001100100000001000000100101001000000101010000010101001100000000(仅添加两个零而不是4)

我不知道该怎么办,我尝试将字符串解析为INT,HEXA,BINARY,OCTAL等。

0 个答案:

没有答案