码迷,mamicode.com
首页 > 其他好文 > 详细

C计算int最大值、最小值

时间:2020-07-04 22:32:08      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:最小   一半   运算   max   class   size   整数   style   span   

方法一:

整数值越界后符号改变

int i = 0, max, min;
    while(1)
    {
        if(i + 1 <= 0)
        {
            max = i;
            min = i + 1;
            break;
        }
        i++;
    }
    printf("int最大值%d,最小值%d\n", max, min);

方法二:

0(unsigned int)的二进制为:00000000 00000000 00000000 00000000

按位取反(~):11111111 11111111 11111111 11111111

除以2(int类型中有一半表示负数,且比正数多一个)

printf("%d\n",~(unsigned int)0/2);

方法三:

先补码得到-1(即各位全为1),然后利用移位运算得到最小,进而得到最大。

int i=0;
i=~i;
i=i<<(sizeof(int)*8-1);
printf("min%d\n",i);
i--;
printf("max%d\n",i);

 

C计算int最大值、最小值

标签:最小   一半   运算   max   class   size   整数   style   span   

原文地址:https://www.cnblogs.com/fengyaoyao/p/13236597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!