function shiftLeft16(value, shiftCount) { return ((value & 0x7FFF) << shiftCount) | (value & ~0x7FFF); } function printValue16(value) { java.lang.System.out.println( value + "(" + java.lang.Integer.toBinaryString(value & 0xFFFF) + ")"); } var value = -1; printValue16(value); printValue16(value << 16); printValue16(shiftLeft16(value, 16)); // 結果は以下: //-1(1111111111111111) //-65536(0) //-32768(1000000000000000)
2010-03-21
符号付き16ビット整数の左ビットシフトをRhinoでやってみる
シフト数を16にした時に、ようやく(value << shiftCount)だとダメだと気付いた。
Rhinoで独自プロパティを追加してJavaインタフェースを実装する
Javaインタフェースを実装するJavaScriptオブジェクトにプロパティを追加しておくと、Javaインタフェースで宣言されたメソッドからも利用できる。
var runner = new java.lang.Runnable() { // 独自プロパティを追加する message: "Hello, ", // Javaインタフェースのメソッドを実装する run: function() { // 追加しておいたプロパティを使用する java.lang.System.out.println(this.message + this); } }; new java.lang.Thread(runner).start(); java.lang.Thread.currentThread().sleep(100); // スクリプト本体の実行が終わらないように少し待つ
登録:
投稿 (Atom)