剰余計算の高速化

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ft

剰余計算の高速化

#1

投稿記事 by ft » 15年前

毎回剰余計算をしている箇所があるためその高速化について考えているのですが、どのようにすればいいでしょう?
対象の具体例を示しますと
void calc_ch(){
	ch.cnt++;
	ch.img=(ch.cnt%24)/6;
}
のようなものなどです。

toyo

Re:剰余計算の高速化

#2

投稿記事 by toyo » 15年前

2のn乗なら簡単なんですが
cnt % 8 == cnt & 7
cnt % 16 == cnt & 15
cnt % 32 == cnt & 31

たかぎ

Re:剰余計算の高速化

#3

投稿記事 by たかぎ » 15年前

ch.cntの更新をここでしか行っていないのであれば...
void calc_ch(){
	if (ch.cnt < 24 - 1)
           ++ch.cnt;
        else
            ch.cnt += 1 - 24;
	ch.img=ch.cnt/6;
}
上記のようにすることができるかと思います。

ft

Re:剰余計算の高速化

#4

投稿記事 by ft » 15年前

ありがとうございます。
お二方の方法を使わせてもらいます!

閉鎖

“C言語何でも質問掲示板” へ戻る