Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
特定の配置に合わせたい値があります。つまり、値がまだ配置されていない場合は、配置の次の倍数に値を増やします。
C++ でこれを行う簡潔な方法は何ですか?
例えば
int x; int alignment; int y = ???; // align x to alignment
アラインメントはa
a
---(k-1)a-----------x--------------ka--------- <----r----><-----(a-r)--->
ここkで、は整数です(つまりka、配置の倍数です)
k
ka
最初に残りを見つけます
r = x%a
次に、xを次の倍数にインクリメントします
y = x + (a-r)
ただし、r = 0の場合、y = x
だからついに
r = x%a; y = r? x + (a - r) : x;