假设我有一个变量:
int n = 23;
可以拆分它,并转换为:
int x = n ?? ??; //2
int y = n ?? ??; //3
不知道该怎么做。非常感谢任何帮助。提前谢谢。
答案 0 :(得分:6)
没有必要为此使用位运算符。实际上,由于位运算符使用数字的二进制表示,它们通常对基数10计算没有好处。
int n = 23;
int x = n / 10;
int y = n % 10;
答案 1 :(得分:1)
您可以使用循环来获取每个值。当然,你必须以不同的方式跟踪x
,但我认为这对你有用。
while (n != 0)
{
x = n % 10;
n = n / 10;
}
答案 2 :(得分:0)
使用libc库的不同方法。 ..还有其他人。
int *
val2arr(int *arr, const int val)
{
char tmp[32]={0x0}; // more than digits in LONG_MAX on 64 bit
char *p=tmp;
int *i=arr;
sprintf(p, "%d", val);
for(; *p; i++, p++ )
*i=*p - 48;
*i=-1; // mark end with -1
return arr;
}