###前提・実現したいこと
こんにちは、久しぶりにお世話になります。
Javaでビットボードを使ったプログラムを書いています。扱う題材の盤面がちょうど0or1の64マスなので64ビット整数(long型)が使えるのではと考えました。その処理の途中でわからないことがあるので質問させてください。
###発生している問題・エラーメッセージ
エラー: 整数8000000000000000が大きすぎます System.out.print(temp & (long)0x8000000000000000);
###該当のソースコード
Java
1 public void disp(){ 2 long temp = white; 3 for(int j=0 ; j<8 ; j++){ 4 for(int i=0 ; i<8 ; i++){ 5 System.out.print(temp & 0x8000000000000000); // ここでエラー発生 6 temp <<= 1; 7 } 8 System.out.println(); 9 } 10 }
Java
1 public void disp(){ 2 long temp = white; 3 for(int j=0 ; j<8 ; j++){ 4 for(int i=0 ; i<8 ; i++){ 5 System.out.print(temp & (long)0x8000000000000000); // こちらでもうまくいかない 6 temp <<= 1; 7 } 8 System.out.println(); 9 } 10 }
盤面を表示する関数です。white
には盤面の状態(8x8マス)が格納されています。
###試したこと
上記のように(long)0x800...
とキャストしたが解決しなかった。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/06 05:58