Предполагая, что у меня есть переменная типа:
int n = 23;
можно разделить его и преобразовать в:
int x = n ?? ??; //2 int y = n ?? ??; //3
понятия не имею, как это сделать. Любая помощь очень ценится. Заранее спасибо.
Для этого не обязательно использовать битовые операторы. Фактически, поскольку битовые операторы работают с двоичным представлением чисел , они, как правило, не годятся для вычислений с основанием 10.
int n = 23; int x = n / 10; int y = n % 10;
Вы можете использовать цикл для захвата каждого значения.Вам, конечно, придется следить за x здесь по-другому, но я думаю, что это сработает для вас.
x
while (n != 0) { x = n % 10; n = n / 10; }
другой подход с использованием библиотеки 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; }