gpt4 book ai didi

javascript - galois 字段 galois_mul2 转换为 javascript?

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:39 24 4
gpt4 key购买 nike

我很难将 galois_mul2 函数转换为 javascript。

我在 c 中有以下功能

 unsigned char galois_mul2(unsigned char value)
{
if (value >> 7)
{
return ((value << 1) ^ 0x1b);
}
else
return (value << 1);
}

Javascript 代码

  galois_mul2( value){


if (value >> 7)
{
return ((value << 1) ^ 0x1b);
}
else
return (value << 1);
}

如果我在 C 代码中给输入 222 返回 167而在我的代码中它返回 423。

有什么问题?

最佳答案

您可能知道,JavaScript 中的数字是 64 位 float 。但即使你有一个 UInt8Array对象,并对其进行索引,JavaScript 会将内部 8 位数字转换为 double ,然后再将其提供给您,因此 value << 1可以变成9位数字:试试var arr = new Uint8Array([222]); (arr[0] << 1).toString(2)并注意输出是九长。

要解决此问题,只需使用 0xFF 进行屏蔽即可保留最低八位:

function galois_mul2(value) {
if (value >> 7) {
return ((0xff & (value << 1)) ^ 0x1b);
}
return 0xff & (value << 1);
}

然后,galois_mul2(222)返回 167。

关于javascript - galois 字段 galois_mul2 转换为 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50213398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com