gpt4 book ai didi

Javascript按位转c#

转载 作者:行者123 更新时间:2023-11-28 14:14:35 25 4
gpt4 key购买 nike

我在将 JavaScript 代码转换为 C# 时遇到一些问题,问题出在按位运算符上:

Javascript函数:返回(s - (s | 0x0)) * 0x100000000 | 0x0;

C# 函数;返回(长)((s-((长)s))* 0x100000000);

如果 s = 1.7320508075688772关于 Javascript 报告-1150833019在 C# 报告 3144134277

其他示例可以是 Javascript:(1779033703 << 0x1e) = -1073741824时间:2019-03-17 标签:c#(1779033703<<0x1e)=1910222893216694272

我需要的是将 Javascript 函数转换为具有相同数字结果的 C# 函数。

感谢您的帮助。

最佳答案

所以,这里发生了一些事情。

  1. 您的 JavaScript 中存在类型不匹配。在十六进制中,3144134277BB67AE85-1150833019FFFFFFFFBB67AE85。因此,我们可以看到 JavaScript int32 正在隐式转换为无符号 int64。

  2. 不能按 0 进行位移。位移就是除以 2^n,其中 n 在本例中为 0。这会返回与 2 相同的数字^0 = 1

  3. (long)((ulong)(…) 这是双重转换,被认为是不好的形式。您的数字文字将被转换为无符号长整型,然后再次转换为长整型。这只会浪费周期。

  4. 您的转换是 C 风格的转换,在 C# 中转换通常作为 object.ToInt() 完成

因此,经过审查,您的 JavaScript 中有一个错误。

关于Javascript按位转c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58069682/

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