C语言整数类型的存储空间和取值范围

news/2024/9/22 19:23:04/文章来源:https://www.cnblogs.com/gwsong52/p/18425724

C语言整数类型的存储空间和取值范围

  1. 四种整数类型 char, short, int, long 默认有符号,再加上无符号限制,共8种情况
              char // 字符型,单字节,取值范围:CHAR_MIN - CHAR_MAXunsigned char // 无符号字符型,  取值范围:0 - UCHAR_MAXshort int // 短整型,双字节,取值范围:SHRT_MIN - SHRT_MAX
unsigned short int // 无符号短整型,  取值范围:0 - USHRT_MAXint // 整型,四字节,  取值范围:INT_MIN - INT_MAXunsigned int // 无符号整型,    取值范围:0 - UINT_MAXlong int // 长整型,八字节,取值范围:LONG_MIN - LONG_MAXunsigned long int // 无符号长整型,  取值范围: 0 - ULONG_MAX

在Linux下测试发现long long,即长长整型与long长整型所表达的效果是一样的!!!

  1. 写代码输出整数类型的存储空间和取值范围相关信息
    注意:相关的宏定义在limits.h头文件中,要包含进来!
/* filename: limits.c */
#include <stdio.h>
#include <limits.h>/*compile : gcc limits.c -o limitsrun : ./limits
*//* output datatype char, short, int, longsizeof, min, max, unsigned max information */
void
out_smmu_info (void)
{printf ("Sizeof char is %lu\n", sizeof (char));printf ("Min char is %d\n", CHAR_MIN);printf ("Max char is %d\n", CHAR_MAX);printf ("Max unsigned char is %u\n", UCHAR_MAX);printf ("--------------------------------\n");printf ("Sizeof short is %lu\n", sizeof (short));printf ("Min short is %d\n", SHRT_MIN);printf ("Max short is %d\n", SHRT_MAX);printf ("Max unsigned short is %u\n", USHRT_MAX);printf ("--------------------------------\n");printf ("Sizeof int is %lu\n", sizeof (int));printf ("Min int is %d\n", INT_MIN);printf ("Max int is %d\n", INT_MAX);printf ("Max unsigned int is %u\n", UINT_MAX);printf ("--------------------------------\n");printf ("Sizeof long is %lu\n", sizeof (long));printf ("Min long is %ld\n", LONG_MIN);printf ("Max long is %ld\n", LONG_MAX);printf ("Max unsigned long is %lu\n", ULONG_MAX);printf ("--------------------------------\n");
}/* output char, short, int, longmin, max, unsigned max value, define myself use hex */
void
out_selfdef_info (void)
{printf ("Self def: CHAR_MIN ==> 0X80, %d\n", (char)(0X80));printf ("Self def: CHAR_MAX ==> 0X7F, %d\n", (char)(0X7F));printf ("Self def: UCHAR_MAX ==> 0XFF, %u\n", (unsigned char)(0XFF));printf ("-------------------------------------------------------\n");printf ("Self def: SHORT_MIN ==> 0X8000, %d\n", (short)(0X8000));printf ("Self def: SHORT_MAX ==> 0X7FFF, %d\n", (short)(0X7FFF));printf ("Self def: USHORT_MAX ==> 0XFFFF, %u\n", (unsigned short)(0XFFFF));printf ("-------------------------------------------------------\n");printf ("Self def: INT_MIN ==> 0X80000000, %d\n", (int)(0X80000000));printf ("Self def: INT_MAX ==> 0X7FFFFFFF, %d\n", (int)(0X7FFFFFFF));printf ("Self def: UINT_MAX ==> 0XFFFF, %u\n", (unsigned int)(0XFFFFFFFF));printf ("-------------------------------------------------------\n");printf ("Self def: LONG_MIN ==> 0X8000000000000000, %ld\n",(long)(0X8000000000000000));printf ("Self def: LONG_MAX ==> 0X7FFFFFFFFFFFFFFF, %ld\n",(long)(0X7FFFFFFFFFFFFFFF));printf ("Self def: ULONG_MAX ==> 0XFFFFFFFFFFFFFFFF, %lu\n",(unsigned long)(0XFFFFFFFFFFFFFFFF));printf ("-------------------------------------------------------\n");
}/**/
int
main (int argc, char *argv[])
{out_smmu_info ();out_selfdef_info ();return 0;
}
/* --(:-:)-- */
  1. 编译运行,输出结果如下:
gwsong@ubuntu:~/works/zoo/tmp$ gcc limits.c -o limits
gwsong@ubuntu:~/works/zoo/tmp$ ./limits
Sizeof char is 1
Min char is -128
Max char is 127
Max unsigned char is 255
--------------------------------
Sizeof short is 2
Min short is -32768
Max short is 32767
Max unsigned short is 65535
--------------------------------
Sizeof int is 4
Min int is -2147483648
Max int is 2147483647
Max unsigned int is 4294967295
--------------------------------
Sizeof long is 8
Min long is -9223372036854775808
Max long is 9223372036854775807
Max unsigned long is 18446744073709551615
--------------------------------
Self def: CHAR_MIN ==> 0X80, -128
Self def: CHAR_MAX ==> 0X7F, 127
Self def: UCHAR_MAX ==> 0XFF, 255
-------------------------------------------------------
Self def: SHORT_MIN ==> 0X8000, -32768
Self def: SHORT_MAX ==> 0X7FFF, 32767
Self def: USHORT_MAX ==> 0XFFFF, 65535
-------------------------------------------------------
Self def: INT_MIN ==> 0X80000000, -2147483648
Self def: INT_MAX ==> 0X7FFFFFFF, 2147483647
Self def: UINT_MAX ==> 0XFFFF, 4294967295
-------------------------------------------------------
Self def: LONG_MIN ==> 0X8000000000000000, -9223372036854775808
Self def: LONG_MAX ==> 0X7FFFFFFFFFFFFFFF, 9223372036854775807
Self def: ULONG_MAX ==> 0XFFFFFFFFFFFFFFFF, 18446744073709551615
-------------------------------------------------------
  1. 用十六进制自定义取值范围清晰明了,不同情况下可以选择不同长度的整数数据类型
    下一步研究一下其他数据类型的存储长度和相关信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/801632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电力煤矿液体泄漏识别系统

电力煤矿液体泄漏识别系统对电力煤矿危化品生产区域管道机械实时检测,当电力煤矿液体泄漏识别系统检测到机械管道出现液体泄漏时,系统立即抓拍存档并告警同步回传给报警信息给后台监控人员,让工作人员及时处理,电力煤矿液体泄漏识别系统实现危险区域跑冒滴漏异常自动监控抓…

河道水尺水位监测系统

河道水尺水位监测系统利用计算机视觉技术对河道湖泊水尺水位进行7*24小时全天候实时监测,当河道水尺水位监测系统监测到河道水位异常变化时,系统立即抓拍存档同步回传图片给后台监控平台,提醒后台工作人员及时处理异常情况,避免更大损失的发生。河道水尺水位监测系统适用于…

7-4DeepFM模型

DeepFM继承了Wide&Deep的主体结构,将高低特征进行融合。其主要创新点有2个。一是将Wide部分替换成了 FM结构,以更有效的捕获特征交互interaction;二是FM中的隐向量 和 Deep部分的 embedding 向量共享权重,减少模型复杂性。推荐系统和广告CTR预估主流模型的演化有两条主…

排水口排水识别系统

排水口排水识别系统基于Python基于YOLOv7深度学习的计算机视觉识别检测算法,排水口排水识别系统赋予传统监测系统智能检测能力提升企业污水排放监督管效率,7*24小时不间断准确判断检测场景内的是否出现排水口排水情况,减少后台监控人员的工作量,减少后台漏报误报产生的失误…

作业区域人数超员预警系统

作业区域人数超员预警系统利用现场已有摄像头对生产作业区域进行全天候不间断实时监测,一旦作业区域人数超员预警系统监测到作业区域人数超员时,立即进行抓拍存档并告知后台监控中心人员,提醒后台人员及时处理避免意外情况发生。作业区域人数超员预警系统对人数超员记录截图…

河道采砂船监测识别系统

河道采砂船监测识别系统通过计算机视觉深度学习技术对河道采砂区域进行实时监测,当河道采砂船监测识别系统监测到有采砂船通过停留非法采砂时,立即抓拍存档触发告警,同步回传给后台通知后台人员及时处理。河道采砂船监测识别系统对河道采砂区域进行7*24小时实时监测有效弥补…

仪表盘读数识别系统

仪表读数识别系统利用现场传统监控摄像头对仪表盘刻度数进行7*24小时实时读取,当仪表盘读数识别系统监测到仪表盘数据异常时,立刻推送给后台相关管理人员,工作人员在第一时间到现场进行处理,避免更大的损失发生。同时,将告警截图和视频保存到数据库形成报表。仪表盘读数识…

电力煤矿跑冒滴漏监测系统

电力煤矿跑冒滴漏监测系统基于计算机视觉分析技术,主动识别电力厂区监控视频中管道或者机械是否存在液体泄漏跑冒滴漏行为。如电力煤矿跑冒滴漏监测系统检测到现场出现液体泄漏行为,系统立即抓拍并反馈后台人员及时处理避免发生更大的危险。电力煤矿跑冒滴漏监测系统对工厂机…

校园打架行为识别检测系统

校园打架行为识别检测系统基于python深度学习框架+边缘分析技术,自动对校园监控视频图像信息进行分析识别。校园打架行为识别检测系统利用学校监控对校园、广场等区域进行实时监测,当监测到有人打架斗殴时,系统立即抓拍存档语音提醒,并将打架行为回传给学校监控后台,提醒后…

化工厂跑冒滴漏识别系统

化工厂跑冒滴漏识别系统基于机器视觉深度学习算法,化工厂跑冒滴漏识别系统自动识别监控视频中机械管道是否存在液体泄漏情况发生,当系统检测到液体泄漏时,可以立即抓拍存档告警同步反馈到监控后台人员,及时处理。化工厂跑冒滴漏识别系统 对工厂机械管道液体泄漏情况自动识别…

智能图像水位识别监测系统

智能图像水位识别监测系统利用两岸已有的监控摄像头对河道江河湖泊等区域进行实时监测,当智能图像水位识别监测系统监测到水位刻度尺超标时立即抓拍告警同步回传给后台监控平台方便人员及时处理。水位起伏变化,水利水灾往往系于一线之间。智能图像水位识别监测系统现实意义价…

河道水面漂浮物垃圾识别监测系统

河道水面漂浮物垃圾识别监测系统对河道、湖泊区域进行实时监测,当河道水面漂浮物垃圾识别监测系统监测到湖面有漂浮物或者垃圾时,系统立即抓拍存档同步发给后台人员通知后台工作人员及时清理。河道水面漂浮物垃圾识别监测系统能够全天候不间断实时监测识别河道水面上的垃圾以…