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

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

nqy422 幼苗

共回答了16个问题采纳率:100% 举报

题目中的反序,是用““二进制””进行的,用““十进制数””来说明思路,也许能好理解.
看下面的计算过程:
x = 385;
y = 0;
while(x != 0){
t = x % 10; //t = 5 t = 8 t = 3
y = 10 * y + t; //y = 5 y = 58 y = 583
x = x / 10; //x = 38 x = 3 x = 0
}
循环三次,中间结果数据在上面已经标出.
最后结果:y = 583, 这是385的反序数字.

1年前 追问

12

村里来的女子 举报

您好,您的解释很好,其实我想问个很弱智的问题,您是怎么想到要这样做的呢?开始怎么入手呢?谢谢您回答一下!

举报 nqy422

二进制的数据处理,实际上,很多都和十进制雷同。 但是,十进制,虽然从小就用了多年,往往还是没有掌握住规律。 基础牢固了,自然就想到高级的问题应该如何处理了。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.030 s. - webmaster@yulucn.com