1

私はこのような配列にたくさんの変数を持っています:short num = 7123;。値は常に4桁の長さです。これをに変える方法は a = 7; b = 123;

私が考えることができるのは、c-stringに変換してそれを取り除くことだけですが、効率的ではないようです。

4

5 に答える 5

5
b = num % 1000;
a = num / 1000;
于 2012-01-25T04:22:49.100 に答える
3

C標準ライブラリにはdiv()、1つの操作でこれを実行できるものが含まれています。

div_t r = div(num, 1000);
a = r.quot;
b = r.rem;

C標準ライブラリは、1つのマシン命令(そのような命令を持つCPU上で)でdiv()除算剰余を実行する最適化された実装を持つことが期待できます。

于 2012-01-25T04:41:23.883 に答える
1
short a = num / 1000; 
short b = num % 1000;
于 2012-01-25T04:23:12.297 に答える
1

それは次のように簡単です:

a = num / 1000;
b = num % 1000;
于 2012-01-25T04:23:13.757 に答える
0
// cast to integer should drop the decimal
a = (int) ( num / 1000 );

// use variable a to subtract the thousand place to zero
b = a - num;
于 2012-01-25T04:24:16.837 に答える