C语言加强学习营(二):定义整型的最大值和最小值
生活随笔
收集整理的這篇文章主要介紹了
C语言加强学习营(二):定义整型的最大值和最小值
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
示例
#include <stdio.h> #include <stdint.h>int main(int argc, char **argv) {uint8_t uint8_max = ~(uint8_t)0; /*!< 定義無符號字符型型的最大值 */int8_t int8_max = (int8_t)((uint8_t)(~1) >> 1); /*!< 定義有符號字符型的最大值 */uint32_t uint32_max = ~(uint32_t)0;int32_t int32_max = (int32_t)((uint32_t)(~1) >> 1);int8_t int8_min = ~int8_max;printf("Min of int8_t is 0x%X - %d\n", int8_min, int8_min);printf("Max of int8_t is 0x%X - %d\n",int8_max, int8_max);printf("Max of uint8_t is 0x%X - %u\n",uint8_max, uint8_max);printf("Max of int32_t is 0x%X - %d\n", int32_max, int32_max);printf("Max of uint32_t is 0x%X - %u\n", uint32_max, uint32_max); } root@seven:~/workspace/test/16.values# gcc value.c root@seven:~/workspace/test/16.values# ./a.out Min of int8_t is 0xFFFFFF80 - -128 Max of int8_t is 0x7F - 127 Max of uint8_t is 0xFF - 255 Max of int32_t is 0x7FFFFFFF - 2147483647 Max of uint32_t is 0xFFFFFFFF - 4294967295解析
最大值
對于無符號整型數(shù)據(jù),最大值即為每位都是1,所有可以使用位操作運算符~(位非): <unsigned type> max = ~(<unsigned type>)0;
對于有符號整型數(shù)據(jù),最大值為符號位為0,其他位都為1: <signed type> max = (<signed type>)((<unsigned type)(~1) >> 1);,先取反,然后使用除2或者右移一位的方式時最高位(符號位)為0(正數(shù)),即得到有符號型數(shù)據(jù)最大值。
最小值
對于無符號整型數(shù)據(jù),最小值即為0;
對于有符號整型數(shù)據(jù),最小值為能表示的最小負(fù)數(shù),由于負(fù)數(shù)編碼為補(bǔ)碼表示,故最小值符號位為1(負(fù)號),其他位全為0: <signed type> min = ~(max);
——生活不會放棄你,但也不會放過你。
總結(jié)
以上是生活随笔為你收集整理的C语言加强学习营(二):定义整型的最大值和最小值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南方人过春节的风俗
- 下一篇: CocosCreator1.x实现水流动