1

我正在尝试将一些复杂的 C# 位移代码转换为 javascript(节点),但作为示例,我遇到了这种转换的问题:

var d = false;
var k = 61;
var dd = 103;

uint r = 2924539136;
r |= unchecked((byte)(d ? (k + dd) : (k - dd)));

Console.WriteLine("result: " + r);  // 2924539350

有没有办法将javascript中的(字节)转换复制到它计算我正在寻找的值的地方,到目前为止我有这个,但它只会导致-42。

r |= (d ? (k + dd): (k - dd));
4

1 回答 1

1
var d = false;
var k = 61;
var dd = 103;

r = 2924539136;

b = (d ? (k + dd) : (k - dd))
x = (r | (b & 0xFF)) >>> 0

返回

x = 2924539350

诀窍是用来&0xFF屏蔽除低 8 位以外的所有位,b并将>>>0 有符号的 32 位数字转换为无符号数

于 2013-07-25T08:11:34.570 回答