如何从长整数值中扫描中间4位数?

时间:2012-11-17 06:32:18

标签: c++ c

我有12位数的长值作为算术运算的输出。所以我只想要中间的4个值。例如,我有823954957346,我只想要5495存储在一个变量中。我可以用C或C ++做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

main() {
    unsigned long i = 823954957346;
    printf ("%lu\n", i);
    printf ("%lu\n", i / 10000 % 10000); 
}

输出:

823954957346
5495

答案 1 :(得分:2)

如果您真的在说话位,请向右移4位,然后使用按位AND屏蔽4个低位。我的C ++有点生疏,但它类似于:

number >> 4 & 15

如果你正在说数字,除以10000然后取数字mod 10000,如:

number / 10000 % 10000

易。