記事一覧

累乗の罠

こねこぺいんとを作っていたときに、
画像データのサイズをなんとか減らそうと思って、
いろいろと試行錯誤していました。

そのときにとある間抜けな罠にハマリました。。。

以下、プログラムのイメージ。

int colorRed = 1;
int colorGreen = 2;
int colorBlue = 0;

//3色を1byteに圧縮
byte color = (byte)(colorRed * 3^2 + colorGreen * 3^1 + colorBlue * 3^0);

//Red取り出し
int colorRedNew = (int)(color / 3^2);

↑だとうまくいきません。それもそのはず、累乗って「^」のイメージがあったのでなんとなく使ってみたのですが、Javaだと「^」は累乗ではなくて排他的論理輪なんですねぇ。
関数で計算するのもイヤなので、おとなしく直接値を書くことに。。。

トラックバック一覧

コメント一覧

未承認 2010年11月15日(月)08時51分 編集・削除

管理者に承認されるまで内容は表示されません。

未承認 2012年02月04日(土)05時42分 編集・削除

管理者に承認されるまで内容は表示されません。

非公開 2018年08月06日(月)13時28分 編集・削除

管理者にのみ公開されます。