タグ付けされた質問 「saturation-arithmetic」

14
最大値を超えずに変数をインクリメントするにはどうすればよいですか?
私は学校向けの簡単なビデオゲームプログラムに取り組んでおり、そのメソッドが呼び出された場合にプレイヤーが15ヘルスポイントを獲得するメソッドを作成しました。ヘルスを最大100に保つ必要があり、この時点で限られたプログラミング能力で、私はこのようなことをしています。 public void getHealed(){ if(health <= 85) health += 15; else if(health == 86) health += 14; else if(health == 87) health += 13; }// this would continue so that I would never go over 100 構文が完全ではないことは理解していますが、問題は、それを行うためのより良い方法は何ですか?損傷点についても同様のことを行い、0未満にならないようにする必要があるためです これは飽和演算と呼ばれます。

11
符号なしバイトの飽和減算/加算
私は2つの符号なしバイトを持っている想像bしてx。bsubasb - xとbaddasを計算する必要がありb + xます。ただし、これらの操作中にアンダーフロー/オーバーフローが発生することは望ましくありません。例(擬似コード): b = 3; x = 5; bsub = b - x; // bsub must be 0, not 254 そして b = 250; x = 10; badd = b + x; // badd must be 255, not 4 これを行うための明白な方法には、分岐が含まれます。 bsub = b - min(b, x); badd …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.