卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章65604本站已运行4129

C 中的计数范围

c 中的计数范围

https://www.learntosolveit.com/ 是我的项目,帮助我成为一名软件工程师。我继续致力于这个基础项目,以帮助自己和其他人成为优秀的程序员。该项目现在是一个使用 K&R 书籍学习 C 编程的配套网站。它使用现代工具,旨在与本书一起使用。


编写一个程序,通过从标准标头打印适当的值并通过直接计算来确定 char、short、int 和 long 变量(有符号和无符号)的范围。如果计算它们会更困难:确定各种浮点类型的范围。
#include <float.h>
#include 
#include <stdio.h>

int main() {
    /* 通过计算得出各种整数类型的范围 */
    printf("通过计算得到各种整数类型的范围:n");

    printf("最小有符号字符 %dn", -(int)((unsigned char)~0 &gt;&gt; 1) - 1);
    printf("最大有符号字符 %dn", (int)((unsigned char)~0 &gt;&gt; 1));

    printf("最小有符号短整型 %dn", -(int)((无符号短整型)~0 &gt;&gt; 1) - 1);
    printf("最大有符号短整型 %dn", (int)((无符号短整型)~0 &gt;&gt; 1));

    printf("最小有符号整数%dn", -(int)((unsigned int)~0 &gt;&gt; 1) - 1);
    printf("最大有符号整数%dn", (int)((unsigned int)~0 &gt;&gt; 1));

    printf("最小有符号长整型 %ldn", -(long)((unsigned long)~0 &gt;&gt; 1) - 1);
    printf("最大有符号长整型 %ldn", (long)((unsigned long)~0 &gt;&gt; 1));

    /* 无符号最大值 */

    printf("最大无符号字符%dn", (unsigned char)~0);
    printf("最大无符号短整型%dn",(无符号短整型)~0);
    printf("最大无符号整数%un", (unsigned int)~0);
    printf("最大无符号长整型 %lunn", (unsigned long)~0UL);

    /* 计算 float 类型的最大值可能很棘手,我们可以使用标准标头 */

    /* 标准标头中各种浮点类型的范围 */
    printf("标准头中的各种整数和浮点类型的范围:n");
    printf("最小有符号字符 %dn", SCHAR_MIN);
    printf("最大有符号字符%dn", SCHAR_MAX);

    printf("最小有符号短值 %dn", SHRT_MIN);
    printf("最大有符号短字符 %dn", SHRT_MAX);

    printf("最小有符号整数%dn", INT_MIN);
    printf("最大有符号整数%dn", INT_MAX);

    printf("最小有符号长整型 %ldn", LONG_MIN);
    printf("最大有符号长整型 %ldn", LONG_MAX);

    printf("最小有符号长整型 %lldn", LLONG_MIN);
    printf("最大有符号长整型%lldn", LLONG_MAX);

    printf("最小浮点%En", FLT_MIN);
    printf("最大浮点数%En", FLT_MAX);

    printf("最小双精度%En", DBL_MIN);
    printf("最大双精度%En", DBL_MAX);

    printf("最小长双精度 %LEn", LDBL_MIN);
    printf("最大长整型%LEn", LDBL_MAX);

    /* 无符号最大值 */

    printf("最大无符号字符%dn", UCHAR_MAX);
    printf("最大无符号短整型 %dn", USHRT_MAX);
    printf("最大无符号整数%un", UINT_MAX);
    printf("最大无符号长整型%lun", ULONG_MAX);
    printf("最大无符号长整型%llun", ULLONG_MAX);

    返回0;
}
</stdio.h></float.h>

查看程序的视觉解释:
https://www.learntosolveit.com/cprogramming/chapter2/ex_2.1_cal_limits

卓越飞翔博客
上一篇: Leetcode Day 从排序数组中删除重复项解释
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏