| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12547 人关注过本帖
标题:输入一个十进制整数,将他们对应的二进制数的各位反序,形成新的十进制数输 ...
只看楼主 加入收藏
锄禾当午
Rank: 2
等 级:论坛游民
帖 子:12
专家分:34
注 册:2016-2-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:9 
输入一个十进制整数,将他们对应的二进制数的各位反序,形成新的十进制数输出。求大神。。
搜索更多相关主题的帖子: 二进制 十进制 
2016-02-08 22:11
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:7 
这就精确到位了,总得指定用多少位来表示一个数吧,一般int占四个字节也就是32位,你是要将这32位全部反序?

天道酬勤
2016-02-10 18:39
杭01
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
威 望:1
帖 子:29
专家分:132
注 册:2016-2-11
收藏
得分:7 
求作业的贴子还是不发为妙

准备中考中,有事请Email :)

Email: huihan9 AT qq DOT com
QQ: 2672286148
cnblogs: jt2001
2016-02-11 15:07
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:7 
如果不考虑位长,下述代码可完成(1234二进制反转十进制数为601):
程序代码:
#include <stdio.h>
void main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=n,j=0;i;i/=2)j=j*2+i%2;
    printf("%d\n",j);
}


能编个毛线衣吗?
2016-02-11 22:31
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
回复 4楼 wmf2014
版主太厉害了,这个问题我要写一堆代码才能实现,你竟然用数行搞定让我情何以堪我想知道你是怎么做到的!

[此贴子已经被作者于2016-2-12 11:07编辑过]


天道酬勤
2016-02-12 11:05
yuzhengxin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2013-2-19
收藏
得分:0 
#include <stdio.h>
int main()
{
int m,n=0,p=1;
scanf("%d",&m);  
for(;m;)
{
n=(1-m%2)*p+n;
m/=2;
p*=2
}
printf("%d\n",n);
}

2016-02-12 22:52
yuzhengxin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2013-2-19
收藏
得分:0 
回复 4楼 wmf2014
你这个不是按位反转,应该是二进制串倒序。
2016-02-12 22:55
yuzhengxin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2013-2-19
收藏
得分:0 
回复 4楼 wmf2014
sorry 我看错题目了,楼主要的是二进制串反序,我的是二进制串(十进制数据转换为二进制,保留最高位1时)按位取反,不要看我的代码啦....
2016-02-12 22:59
foxeer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
收藏
得分:0 
回复 4楼 wmf2014
版主求你的思维模式,我赛,我也是得写一堆代码才能完成。
2016-02-14 15:56
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
这坛子里一大堆算法大神,如beyondyf、rjsp两位版主,他俩的代码既精炼又高效,经常使用数学方法就把一些看似很复杂的逻辑关系简而化之。
我只会一些基本的小伎俩
另回复yuzhengxin:即使是按有效位取反,也不需要那么复杂的逻辑,下述代码即可:
#include <stdio.h>
void main()
{
    int i,n;
    scanf("%d",&n);  //n大于0
    for(i=1;i<n;i*=2);
    i=(i-1)&~n;
    printf("%d\n",i);
}

能编个毛线衣吗?
2016-02-14 17:49
快速回复:输入一个十进制整数,将他们对应的二进制数的各位反序,形成新的十进制 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048377 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved