打印系统整型数据极限值的C程序

来源:互联网 发布:如何看图纸数控编程 编辑:程序博客网 时间:2024/05/17 09:05

本程序没有使用系统的limits.h头文件,完全通过位运算得到结果

/* * ===================================================================================== * *       Filename:  printlimitint.c * *    Description:  print the max and min number of integer * *        Version:  1.0 *        Created:  2012年09月19日 14时48分10秒 *       Revision:  none *       Compiler:  gcc * *         Author:  (http://blog.csdn.net/njzhiyuan) *   Organization:   * * ===================================================================================== */#include <stdio.h>int main(int argc, char *argv[]) {printf("max unsigned char = %d\n", (unsigned char)(~'\0'));printf("max unsigned short = %d\n", (unsigned short)(~0));printf("max unsigned int = %u\n", ~0U);printf("max unsigned long = %lu\n", ~0UL);printf("max unsigned long long = %llu\n", ~0ULL);printf("max char = %d\n", (unsigned char)(~'\0') >> 1);printf("max short = %d\n", (unsigned short)(~0) >> 1);printf("max int = %d\n", ~0U >> 1);printf("max long = %ld\n", ~0UL >> 1);printf("max long long = %lld\n", ~0ULL >> 1);printf("min char = %d\n", ~((unsigned char)(~'\0') >> 1));printf("min short = %d\n", ~((unsigned short)(~0) >> 1));printf("min int = %d\n", ~(~0U >> 1));printf("min long = %ld\n", ~(~0UL >> 1));printf("min long long = %lld\n", ~(~0ULL >> 1));return 0;}



gcc版本:

$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright © 2011 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

编译执行:

$ gcc -o printlimitint printlimitint.c

$$ ./printlimitint
max unsigned char = 255
max unsigned short = 65535
max unsigned int = 4294967295
max unsigned long = 18446744073709551615
max unsigned long long = 18446744073709551615
max char = 127
max short = 32767
max int = 2147483647
max long = 9223372036854775807
max long long = 9223372036854775807
min char = -128
min short = -32768
min int = -2147483648
min long = -9223372036854775808
min long long = -9223372036854775808