zoukankan      html  css  js  c++  java
  • 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。

    不太了解如何打印取值范围。直接看答案。

    通过打印头文件实现 <limits.h>

     1 #include <stdio.h>
     2 #include <limits.h>
     3 main()
     4 {
     5 /* signed types */
     6 
     7 printf("signed char min = %d
    ", SCHAR_MIN);
     8 printf("signed char max = %d
    ", SCHAR_MAX);
     9 printf("signed short min = %d
    ", SHRT_MIN);
    10 printf("signed short max = %d
    ", SHRT_MAX);
    11 printf("signed int min = %d
    ", INT_MIN);
    12 printf("signed int max = %d
    ", INT_MAX);
    13 printf("signed long min = %d
    ", LONG_MIN);
    14 printf("signed long max = %d
    ", LONG_MAX);
    15 
    16 /*unsigned types*/
    17 printf("unsigned char max = %d
    ", UCHAR_MAX);
    18 printf("unsigned short max = %d
    ", USHRT_MAX);
    19 printf("unsigned int max = %d
    ", UINT_MAX);
    20 printf("unsigned long max = %d
    ", ULONG_MAX);
    21 
    22 return 0;
    23 }

     直接计算打印取值范围;

     1 #include <stdio.h>
     2 /*determine ranges of types*/
     3 main()
     4 {
     5 /* signed ranges of types*/
     6 
     7 printf(" signed char min = %d 
    ", -(char)((unsigned char) ~0 >> 1));
     8 
     9 printf(" signed char max = %d 
    ", (char)((unsigned char) ~0 >> 1));
    10 
    11 printf(" signed short min = %d 
    ", -(short)((unsigned short) ~0 >> 1));
    12 
    13 printf(" signed short max = %d 
    ", (short)((unsigned short) ~0 >> 1));
    14 
    15 printf(" signed int min = %d 
    ", -(int)((unsigned int) ~0 >> 1));
    16 
    17 printf(" signed int max = %d 
    ", (int)((unsigned int) ~0 >> 1));
    18 
    19 printf(" signed long min = %d 
    ", -(long)((unsigned long) ~0 >> 1));
    20 
    21 printf(" signed long max = %d 
    ", (long)((unsigned long) ~0 >> 1));
    22 
    23 
    24 /*unsigned types*/
    25 
    26 printf(" unsigned char max = %d 
    ",(unsigned char) ~0);
    27 
    28 printf(" unsigned int max = %d 
    ",(unsigned int) ~0);
    29 
    30 printf(" unsigned short max = %d 
    ",(unsigned short) ~0);
    31 
    32 printf(" unsigned long max = %d 
    ",(unsigned long) ~0);
    33 
    34 
    35 return 0;
    36 }

    输出:

    signed char min = -127
    signed char max = 127
    signed short min = -32767
    signed short max = 32767
    signed int min = -2147483647
    signed int max = 2147483647
    signed long min = -2147483647
    signed long max = 2147483647
    unsigned char max = 255
    unsigned int max = -1
    unsigned short max = 65535
    unsigned long max = -1

  • 相关阅读:
    真的要努力了
    实事求是
    要努力了
    新征程,新目标
    真的要放弃了吗
    集中力量 主攻文科
    May the force be with me.
    记录级排名
    Android开发过程中git、repo、adb、grep等指令的使用
    Ubuntu环境变量设置
  • 原文地址:https://www.cnblogs.com/jango/p/3393320.html
Copyright © 2011-2022 走看看