How to read a number from highest place value to lowest? So we all know it's easy to read a number from lowest place value to highest.
A simple algorithm would be like :
while(n):
    a=n%10;
    n/=10;

but the question is how do you read it oppositely?
for eg : 12312. must result in me getting first 1 then 2 then 3 and so on.
I don't wanna form an array or reverse the number, unless there is a way to reverse the number with constant time-complexity.
Edit : I think the question is extremely vague so I'll try to explain what I need it for.
So i've been working on optimizing my code for an algorithm to convert binary to decimal.
My algorithm is : while(n) c+=(n%2)&lt;&lt;b++ , n/=10;
But then I figured I don't need the variable b, if i could somehow start from the front then an algorithm like c=2*c+n%2 would work.
I don't really wanna use a while loop to reverse a number as I think it would be inefficient than just having an extra variable.
An alternative that I thought of was having a float c then c=c/2+n%2 but the you'll need to know the number of digits of n. Which I could use logarithm for but I don't know that at that point if it is just better to use another variable. At its heart it is a time vs space complexity problem.
Well, you could construct the inverse of that number. 12312 will become 21321 and then use the piece of code you wrote. So:
while (n)
{inverse = inverse * 10 + (a % 10), a /= 10;}.