6.输入一个十进制整数,将它对应的二进数的各位反序,形成新的十进制数输出。

[复制链接]
查看11 | 回复1 | 2011-4-6 13:07:09 | 显示全部楼层 |阅读模式
6.输入一个十进制整数,将它对应的二进数的各位反序,形成新的十进制数输出。
如: 13?1101?1011?11
如: 10?1010?0101?5
# include
void main()
{ int x,y,t;
printf(“输入一个十进制数:”);
scanf(“%d”,&x);
y=0;
while(
x!=0
){
t=x%2;

;
这里y=2*y+t 是怎么想的
x=x/2;
}
printf(“新的十进制整数为%d\n”,y);
}

回复

使用道具 举报

千问 | 2011-4-6 13:07:09 | 显示全部楼层
13?1
1
0
1
2^3*1
2^2*1 2^1*0 2^0*1
二进制中,乘以2相当于把数左移一位。算出来的t是从高位开始的,这样每次左移一位给低位腾出一个位置。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行