Reputation: 11
I'm trying to convert some complex C# bitshifting code into javascript (node), but I'm having issues with this kind of conversion as an example:
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
Is there some way to replicate the (byte) casting in javascript to where it computes the value I'm looking for, I have this so far, but it just results in -42.
r |= (d ? (k + dd): (k - dd));
Upvotes: 1
Views: 95
Reputation: 214969
var d = false;
var k = 61;
var dd = 103;
r = 2924539136;
b = (d ? (k + dd) : (k - dd))
x = (r | (b & 0xFF)) >>> 0
returns
x = 2924539350
The trick is to use &0xFF
to mask all but lower 8 bits in b
and >>>0
to convert a signed 32-bit number to unsigned.
Upvotes: 1