如何在C中拆分两位数字

假设我有一个像21这样的数字,我想将它拆分,以便得到数字2和1。

为了得到1,我可以做1 mod 10.所以基本上,最后一个数字可以通过使用mod 10找到。

为了获得2,我可以做到(21 – (1 mod 10))/ 10。

以上技术适用于任何2位数字。

但是,让我添加一个进一步的约束,该mod只能用于2的幂。然后不能使用上述方法。

那可以做些什么呢?

2 == 23 / 10 3 == 23 - (23 / 10) * 10 

要获得2你就可以做到

 int x = 23 / 10; 

记住,整数除法会丢弃小数部分(因为它不能用整数表示)。

模数除法(和常规除法)可用于任何幂,而不仅仅是2的幂。 另外,2的幂与2位数不同。

分割三位数字

 int first = 234/100; int second = (234/10)-first*10; int third = (234/1)-first*100-second*10; 

有点工作,它也可能看起来像

 int processed = 0; int first = 234/100-processed; processed = processed + first; processed = processed * 10; int second = 234/10-processed; processed = processed + second; processed = processed * 10; ... and so on ... 

如果你再加一点,你可以很容易地把它写成一个循环。

关于什么

x%10表示第二个数字,x / 10表示第一个数字?