C計算int最大值、最小值


方法一:

整數值越界后符號改變

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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM