私はこのような配列にたくさんの変数を持っています:short num = 7123;。値は常に4桁の長さです。これをに変える方法は a = 7; b = 123;?
私が考えることができるのは、c-stringに変換してそれを取り除くことだけですが、効率的ではないようです。
b = num % 1000;
a = num / 1000;
C標準ライブラリにはdiv()、1つの操作でこれを実行できるものが含まれています。
div_t r = div(num, 1000);
a = r.quot;
b = r.rem;
C標準ライブラリは、1つのマシン命令(そのような命令を持つCPU上で)でdiv()除算と剰余を実行する最適化された実装を持つことが期待できます。
short a = num / 1000;
short b = num % 1000;
それは次のように簡単です:
a = num / 1000;
b = num % 1000;
// cast to integer should drop the decimal
a = (int) ( num / 1000 );
// use variable a to subtract the thousand place to zero
b = a - num;