输入一个十进制整数,将它对应的二进制数的各位反序,形成新的十进制数输出. 请大神解释一下思路.

问题描述:

输入一个十进制整数,将它对应的二进制数的各位反序,形成新的十进制数输出. 请大神解释一下思路.
while(x!=0){ t=x%2; y=2*y+t; x=x/2; 看了答案明白,但是不知道思路,请高人指点.

题目中的反序,是用““二进制””进行的,用““十进制数””来说明思路,也许能好理解.
看下面的计算过程:
x = 385;
y = 0;
while(x != 0){
t = x % 10; //t = 5 t = 8 t = 3
y = 10 * y + t;//y = 5 y = 58y = 583
x = x / 10;//x = 38 x = 3x = 0
}
循环三次,中间结果数据在上面已经标出.
最后结果:y = 583, 这是385的反序数字.您好,您的解释很好,其实我想问个很弱智的问题,您是怎么想到要这样做的呢?开始怎么入手呢?谢谢您回答一下!二进制的数据处理,实际上,很多都和十进制雷同。但是,十进制,虽然从小就用了多年,往往还是没有掌握住规律。基础牢固了,自然就想到高级的问题应该如何处理了。