| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2457 人关注过本帖, 2 人收藏
标题:关于位运算的一个题目,高手请进
只看楼主 加入收藏
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
回复 39楼 beyondyf
程序代码:
//先谢过杨大哥了  ,接着回答思考题
#include<stdio.h>
#include<math.h>

int mul(unsigned int a, unsigned int b)
{
    unsigned int c, f, t;
    for(c = 0; a && b; c ^= t, a <<= 1, b >>= 1)
    for(t = b & 1 ? a : 0; f = c & t; c ^= t, t = f << 1);
    return c;
}

int mult_bit(int n,int m){
    int sum=0,temp=0,f;
    n=abs(n),m=abs(m);
    for(int i=0;f=m>>i;i++){
        if(f&1)temp=n<<i;else continue;
        for(;f=sum&temp;sum^=temp,temp=f<<1);
        sum^=temp;
    }
    return (n^m)<0?-sum:sum;
}

int main()
{
    //同一个数在计算机中内存中的二进制是一样的
    //不同的类型就决定了这个二进制数的解释,和参与的运算
    //我就是解决不了负数移位的问题才把数都转换成正数的...
    //意义是:用无符号整型参与运算,用有符号整型解释内部二进制(因为他本来就是有符号的)
    //这样应该能表示出来了吧
    unsigned x=-1;
    int y=-1;
    printf("\n%X,,,%X\n\n",x,y);
    for(int i=0;i<sizeof(int)*8;)
        printf("x>>%d:=%X,,,y>>%d:=%X\n",++i,x>>=1,i,y>>=1);

    //有没有问题我真看不出来,不过这算不算问题我也不知道
    printf("\nmul:%d * %d = %d\n",0x80000001, 2, mul(0x80000001, 2));
    printf("mult_bit:%d * %d = %d\n",0x80000001, 2, mult_bit(0x80000001, 2));
    printf("mul:%d * %d = %d\n",0x80000000, 2, mul(0x80000000, 2));
    printf("mult_bit:%d * %d = %d\n",0x80000000, 2, mult_bit(0x80000000, 2));

    return 0;
}
//我叫小陈只能想到这么多了,求杨大哥指点一下。

WE GO
2012-10-27 21:40
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
回复 40楼 madfrogme
我老以为版主是牛人了
你怎么连循环都看不懂。。
让我不解。。
求解释:怎么当上版主,怎么增加专家分??

WE GO
2012-10-27 21:46
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
小陈好。

呵呵,你应该把这句也加到你的代码里。

printf("\n%d * %d = %d\n",0x80000001, 2, 0x80000001 * 2);

重剑无锋,大巧不工
2012-10-27 21:59
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
以下是引用cyhdahua在2012-10-27 22:46:00的发言:

我老以为版主是牛人了
你怎么连循环都看不懂。。
让我不解。。
求解释:怎么当上版主,怎么增加专家分??
不好意思啊,破坏版主在你心中的形像了,辩解一下,C语言刚入门,不过刚才问的东西是感觉有点那个...

向大家学习!

The quieter you become, the more you can hear
2012-10-27 22:23
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
哈哈哈哈 见识了
非常感谢杨大哥

WE GO
2012-10-27 23:12
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
回复 44楼 madfrogme
我是新来的,不懂规矩。
不好意思哈

WE GO
2012-10-27 23:13
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 45楼 cyhdahua
不客气,问个我很好奇的题外话,你这头像里的人是谁?

重剑无锋,大巧不工
2012-10-27 23:19
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
我姐

WE GO
2012-10-27 23:25
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 48楼 cyhdahua
呃,幸会,幸会!

呵呵,我原以为会是你女朋友。

[ 本帖最后由 beyondyf 于 2012-10-27 23:31 编辑 ]

重剑无锋,大巧不工
2012-10-27 23:27
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
等我有女朋友了会把我女朋友的照片挂上,让大伙瞧瞧

WE GO
2012-10-27 23:39
快速回复:关于位运算的一个题目,高手请进
数据加载中...
 
   



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

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