Javaのビットシフトとビット単位の動作を再現しようとしています。Javaでビットシフト、ビット単位の操作を複製する方法
これまでこれをやろうとしたことがありますか?また、ロングでも確実に一貫してどのように対応できますか?
var i=[some array with large integers];
for(var x=0;x<100;x++)
{
var a=a large integer;
var z=some 'long'>2.1 billion;
//EDIT:
z=i[x]+=(z>>>5)^(a<<2))+((z<<4)^(a<<5));
}
これをjavaに入れるにはどうすればよいですか?
を行うことによって
long
の32の下位ビットを得ることができますか? Javaは、ビットシフトとビット単位の操作をJavascriptと同様の方法でサポートしています(&?<< >> >>>など)。実際に何が問題になっていますか? – Decoyaはそれが整数の最大値とlongの境界まで来るまで同様です。私はいくつかのjavascriptをjavaに翻訳しようとしており、ビットシフト操作とのマッチングは非常に困難です。Javascriptはビットシフトオペランドのすべてを32ビット整数に変換します。 javascript:var zz = 123456789123 << 20が出ます:-1473249280。 、javaで同じ:long k = 123456789123L << 20;は129453826111438848になります –
Javaで望ましくない動作を複製したかったのですか? o_O – shinkou