トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2004-6-1の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!Javaの暗黙のcast
Javaの暗黙のキャストは本当に怖い
内部では、演算はint型で実行されているようで、
たとえば、
 byte a = (byte)0xfe;
 byte b = (byte)0xfe;
 short c;
 c = a + b;
というようなコードでは、
"possible loss of precision"とか"精度が落ちている可能性"
というエラーが出力される。
とりあえず、コンパイルをとおすためには、
 c = (short)(a+b);
と明示的にキャストしなければいけない
ただし、この場合cの値は-4になってしまう
byteは符号付の型なので正しいのだが、
0x1fcの値を答えとして得たいような場合には
 c = (short)((((int)a)&0x00ff) + (((int)b)&0x00ff))
とか、しなければいけない。
Lispもびっくりの括弧の数。
うーん、UBYTEとかUINTとかっていうクラス作るか?