Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359713
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-16 23:18:46

  1. #include <stdio.h>
  2. #include <math.h>

  3. int
  4. myMax(int i, int j)
  5. {
  6.     int max;
  7.     
  8.     max = ((i+j) + abs(i-j)) / 2;    //利用绝对值

  9.     return (max);
  10. }

  11. int
  12. myMax2(int i, int j)
  13. {
  14.     int c = 0;
  15.     c = i - j;
  16.     c = (unsigned)c >> (sizeof(int)*8 -1);   //根据符号位判断
  17.     if (c)
  18.     {
  19.         return (j);
  20.     }
  21.     else
  22.     {
  23.         return (i);
  24.     }
  25. }

  26. int
  27. main(void)
  28. {
  29.     int i = 3, j = 5;
  30.     
  31.     printf("Max: %d\n", myMax(i,j));
  32.     printf("Max: %d\n", myMax2(i,j));

  33.     return (0);
  34. }





阅读(721) | 评论(1) | 转发(0) |
0

上一篇:自增自减

下一篇:交换两个值

给主人留下些什么吧!~~

onezeroone2011-04-24 16:32:05

数学,符号