| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3102 人关注过本帖
标题:求一个数的负数(要求按位操作实现)
只看楼主 加入收藏
atowin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-14
收藏
 问题点数:0 回复次数:5 
求一个数的负数(要求按位操作实现)
int a, b;

a = 3;
b = a | (~0x7fffffff);

printf("%d, %d\n", a, b);
得不到结果.
大家看看错在那里
搜索更多相关主题的帖子: 负数 
2007-09-19 14:00
yeqishi
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-19
收藏
得分:0 
正数的负数是该正数按位取反再加1,
~0x7fffffff是什么?
你的结果还是原数吧?

2007-09-19 16:46
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
i=(i^0xffffffff)+1;
由于正数的最高位一定是0,与1异或就是1.
与1异或相当于取反,
注意这里的i=(i^0xffffffff)+1;不能改成i=i^0xffffffff+1;或i=1+i^0xffffffff;

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-19 17:11
wangmingqun
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-23
收藏
得分:0 
#include <stdio.h>
void main()
{
int a,b;
printf("Enter a=:\n");
scanf("%d",&a);
b=(a^0xffffffff)+1;
printf("%d",b);
getchar();
}
我已经调试过的。
2007-11-06 10:19
wangmingqun
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-23
收藏
得分:0 
    忘记说下了,上面这个程序就是利用按位取反的方法求数的相反数。正数可以求负,当然也可以负数求其对应的正数了。
2007-11-06 10:24
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
i = ~i + 1; /* 负变正 */


[此贴子已经被作者于2007-11-6 11:46:53编辑过]


—>〉Sun〈<—
2007-11-06 11:45
快速回复:求一个数的负数(要求按位操作实现)
数据加载中...
 
   



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

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