首页 > 编程语言 >2-1 编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、 int 与 long 类型变量的取值范围

2-1 编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、 int 与 long 类型变量的取值范围

时间:2023-07-20 18:33:31浏览次数:25  
标签:short int unsigned long char printf 取值

Archlinux

GCC 13.1.1  20230429

2023-07-20 18:22:15 星期四

 


点击查看代码
#include<stdio.h>
#include<limits.h>

int main()
{
    // 使用打印标准头文件中的相应值的方式
    printf("使用标准头文件中的相应值:\n");
    printf("signed char 取值范围: %d 到 %d\n", SCHAR_MIN, SCHAR_MAX);
    printf("unsigned char 取值范围: 0 到 %u\n", UCHAR_MAX);
    printf("signed short 取值范围: %d 到 %d\n", SHRT_MIN, SHRT_MAX);
    printf("unsigned short 取值范围: 0 到 %u\n", USHRT_MAX);
    printf("signed int 取值范围: %d 到 %d\n", INT_MIN, INT_MAX);
    printf("unsigned int 取值范围: 0 到 %u\n", UINT_MAX);
    printf("signed long 取值范围: %ld 到 %ld\n", LONG_MIN, LONG_MAX);
    printf("unsigned long 取值范围: 0 到 %lu\n", ULONG_MAX);

    // 使用直接计算的方式
    printf("\n使用直接计算的方式:\n");                  // '~0'的结果是11111111,右移,01111111,char转为有符号类型
    printf("signed char 取值范围: %d 到 %d\n", -(char)((unsigned char)~0 >> 1) - 1, (char)((unsigned char)~0 >> 1));
    printf("unsigned char 取值范围: 0 到 %u\n", (unsigned char)~0);
    printf("signed short 取值范围: %d 到 %d\n", -(short)((unsigned short)~0 >> 1) - 1, (short)((unsigned short)~0 >> 1));
    printf("unsigned short 取值范围: 0 到 %u\n", (unsigned short)~0);
    printf("signed int 取值范围: %d 到 %d\n", -(int)((unsigned int)~0 >> 1) - 1, (int)((unsigned int)~0 >> 1));
    printf("unsigned int 取值范围: 0 到 %u\n", (unsigned int)~0);
    printf("signed long 取值范围: %ld 到 %ld\n", -(long)((unsigned long)~0 >> 1) - 1, (long)((unsigned long)~0 >> 1));
    printf("unsigned long 取值范围: 0 到 %lu\n", (unsigned long)~0);

    return 0;
}

 


运行截图:

image

该段代码来自gpt3.5 ,在观察limits.h和float.h后该角简单,由gpt代写,输出正确。

 


小白刚学习C语言,代码质量不高,欢迎评论。

标签:short,int,unsigned,long,char,printf,取值
From: https://www.cnblogs.com/yuwu/p/17569341.html

相关文章

  • int类型范围java
    Java实现int类型范围流程为了实现int类型范围,我们需要以下几个步骤:步骤描述1定义一个int类型变量2给变量赋最大值3给变量赋最小值4打印变量的值接下来,我们将通过代码来展示每个步骤的具体实现。代码实现步骤1:定义一个int类型变量在开始实现之前,......
  • 每日算法之四十:Insert Interval
    Givenasetof non-overlappingYoumayassumethattheintervalswereinitiallysortedaccordingtotheirstarttimes.Example1:Givenintervals [1,3],[6,9],insertandmerge [2,5] inas [1,5],[6,9].Example2:Given [1,2],[3,5],[6,7],[8,10],[12,16],inser......
  • java isInterrupted
    Java中的isInterrupted方法在Java中,线程是一种并发执行的代码单元,它允许我们同时执行多个任务。然而,在多线程编程中,我们经常需要控制和管理线程的行为。Java提供了许多方法来帮助我们实现这一目标之一就是isInterrupted方法。什么是isInterrupted方法?isInterrupted方法是Java中T......
  • Intellij Idea技巧-1
    快捷键下面这个idea和eclipse快捷键的对比,能帮助eclipse的开发者更快适应idea。很多人对idea的不适应都来自快捷键这一层次的基本操作习惯的不适应,只要过了这一关,就进入了投奔idea的快车道。参考:https://www.catalysts.cc/en/wissenswertes/intellij-idea-and-eclipse-shortcuts/另......
  • 用Power Automate获取SharePoint文件内容
    1.根据文件夹路径获取路径下所有文件内容使用SharePoint连接器的“获取文件(仅属性)”操作,站点地址选SharePoint的默认站点,库名选择对应文档库,我这里把SharePoint集成到Dynamics365的实体附件,库名就是对应的实体名。仅限文件夹条目为 /entityname/relativeurl,entityname为实体名,r......
  • java怎么返回bigint
    Java如何返回BigInt在Java中,如果需要处理超过long类型范围的整数,可以使用BigInt类。BigInt类是Java提供的用于表示任意精度整数的类,它可以处理任意大小的整数,没有范围限制。在本文中,我将提供一个示例来解决一个具体的问题,即如何计算两个超大整数的乘积并返回BigInt类型的结果。问......
  • mysql bigint java 无符号
    如何在Java中实现MySQL的无符号bigint字段在本篇文章中,我将教你如何在Java中实现MySQL的无符号bigint字段。我们将分为以下几个步骤来实现这个目标:创建一个数据库表在Java中连接到MySQL数据库执行创建表的SQL语句插入数据到表中查询并展示数据下面是每个步骤需要执行的代......
  • 身份验证遇到问题,登陆ChatGPT时提示:“we ran into an issue while authenticating you
    oops!weranintoanissuewhileauthenticatingyou,ifthisissuepersists,pleasecontactusthroughourhelpcenterathelp.openai.com说明:哎呀!我们在验证您的身份时遇到了一个问题,如果这个问题仍然存在,请通过help.openai.com的帮助中心与我们联系看到这个错误时,一般都......
  • mysql MERGE INTO
    如何使用MySQL的MERGEINTO概述在MySQL中,MERGEINTO语句可以用于合并(插入或更新)一张表的数据到另一张表中。这对于数据同步或数据更新非常有用。本文将介绍如何使用MERGEINTO语句,并提供一个步骤表格来指导你完成这个任务。步骤下面是使用MERGEINTO语句的步骤表格:步骤操......
  • mysql EXECUTE s1 into a
    使用MySQL中的EXECUTE语句将查询结果存储在变量中在MySQL中,我们经常需要执行查询语句并将结果存储在变量中以供后续使用。为了实现这个目标,MySQL提供了一个非常有用的EXECUTE语句。本文将介绍EXECUTE语句的使用方法,并提供几个简单的示例来帮助读者更好地理解该语句的用法。EXECUT......