找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1518|回复: 6

比较两个数的大小题

[复制链接]
发表于 2009-11-6 01:40:11 | 显示全部楼层 |阅读模式 IP:江苏扬州
谁能帮我解释下:
#define MAX(a,b) ((long)(a-b)&0x80000000 ? b:a)
0x80000000这块是什么??
发表于 2009-11-6 01:40:13 | 显示全部楼层 IP:江苏扬州
沙发我坐
0x80000000是十六进制数据0100 000000000000000000000.....
与(a-b)求与
回复

使用道具 举报

发表于 2009-11-6 01:40:14 | 显示全部楼层 IP:江苏扬州
32位的int此值为(INT_MIN)0x80000000,即–2147483648 用二进制第一位为1
&为位运算中的与运算:
若a > b ,则a-b的二进制最高位为0,与上任何数还是0,所以大数为a;
否则,a-b为负数,二进制最高位为1,与上0x80000000(最高位为1其他为0)之后为1,所以此时的大数为b.
回复

使用道具 举报

发表于 2009-11-6 01:40:15 | 显示全部楼层 IP:江苏扬州
#difine Max(a,b) ((a)>(b)?(a):(b))
回复

使用道具 举报

发表于 2009-11-6 01:40:17 | 显示全部楼层 IP:江苏扬州
简单问题为什么要复杂化?
因为000111看的麻烦,写的麻烦,所以进化出a>b,还要&来和二进制数去计算,蛋疼.
回复

使用道具 举报

发表于 2009-11-6 01:40:18 | 显示全部楼层 IP:江苏扬州
来看3楼
回复

使用道具 举报

发表于 2009-11-6 01:40:19 | 显示全部楼层 IP:江苏扬州
这样效率高
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 19:25 , Processed in 0.240213 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表