标题:我发一个关于二进制 0 1 相互转换的 帖子 诚征优秀代码 欢迎各路高手进入 ...
取消只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
全局变量是大忌  说说理由呗  或者相关的引经据典

DO IT YOURSELF !
2015-05-26 11:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复杨兄弟:0取反后应该是1
我的代码没做这个测试

DO IT YOURSELF !
2015-05-26 22:59
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
从数学角度出发  0 1 互换貌似没啥公式吧

DO IT YOURSELF !
2015-05-29 08:41
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 49楼 beyondyf
杨兄弟厉害  经过几个测试数据 准确无误

程序代码:
#include <stdio.h>
#include <math.h>

unsigned int rev1(unsigned int x)
{
    return x ^ (1 << (int)(log(x + 0.9) / log(2.0) + 0.1) + 1) - 1;
}

int main()
{    
    printf("%u\n",rev1(3456));
    return 0;
}

DO IT YOURSELF !
2015-06-02 09:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445781-1-1.html




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

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