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()可以在一个操作中完成此操作:

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

可以期望 C 标准库有一个优化的实现div(),它将在一条机器指令中进行除法余数(在具有这种指令的 CPU 上)。

于 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 回答