电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言数据类型及表示范围

14页
  • 卖家[上传人]:s9****2
  • 文档编号:494817608
  • 上传时间:2023-02-04
  • 文档格式:DOC
  • 文档大小:94.01KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C语言各种数据类型在系统中占的字节和取值范围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C+下基本类型所占位数和取值范围:符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例- - char 8 -27 27-1 %c %c、%d、%usigned - char 8 -27 27-1 %c %c、%d、%uunsigned - char 8 0 28-1 %c %c、%d、%usigned short int 16 -215 215-1 %hdunsigned short int 16 0 216-1 %hu、%ho、%hxsigned - int 32 -231 231-1 %dunsigned - int 32 0 232-1 %u、%o、%xsigned long int 32 -231 231-1 %ldunsigne

      2、d long int 32 0 232-1 %lu、%lo、%lxsigned long long int 64 -263 263-1 %I64dunsigned long long int 64 0 264-1 %I64u、%I64o、%I64x - - float 32 +/- 3.40282e+038 %f、%e、%g - - double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g - long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型;int、short、long也是三种互不相同的类型。可以使用C+的函数重载特性进行验证,如: void Func(char ch) void Func(signed char ch) void Func(unsigned char ch) 是三个不同的函数。 2. char/signed char/unsigne

      3、d char型数据长度为1字节; char为有符号型,但与signed char是不同的类型。注意! 并不是所有编译器都这样处理,char型数据长度不一定为1字节,char也不一定为有符号型。 3. 将char/signed char转换为int时,会对最高符号位1进行扩展,从而造成运算问题。 所以,如果要处理的数据中存在字节值大于127的情况,使用unsigned char较为妥当。程序中若涉及位运算,也应该使用unsigned型变量。 4. char/signed char/unsigned char输出时,使用格式符%c(按字符方式);或使用%d、%u、%x/%X、%o,按整数方式输出;输入时,应使用%c,若使用整数方式,Dev-C+会给出警告,不建议这样使用。 5. int的长度,是16位还是32位,与编译器字长有关。 16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC使用的编译器cl.exe)下,int为32位。 6. 整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。而格式符%u,表示unsign

      4、ed,即无符号10进制方式。 7. 整型前缀h表示short,l表示long。 输入输出short/unsigned short时,不建议直接使用int的格式符%d/%u等,要加前缀h。这个习惯性错误,来源于TC。TC下,int的长度和默认符号属性,都与short一致,于是就把这两种类型当成是相同的,都用int方式进行输入输出。 8. 关于long long类型的输入输出:%lld和%llu是linux下gcc/g+用于long long int类型(64 bits)输入输出的格式符。而%I64d和%I64u则是Microsoft VC+库里用于输入输出_int64类型的格式说明。Dev-C+使用的编译器是Mingw32,Mingw32是x86-win32 gcc子项目之一,编译器核心还是linux下的gcc。进行函数参数类型检查的是在编译阶段,gcc编译器对格式字符串进行检查,显然它不认得%I64d,所以将给出警“unknown conversion type character I in format”。对于%lld和%llu,gcc理所当然地接受了。 Mingw32在编译期间使用

      5、gcc的规则检查语法,在连接和运行时使用的却是Microsoft库。这个库里的printf和scanf函数当然不认识linux gcc下%lld和%llu,但对%I64d和%I64u,它则是乐意接受,并能正常工作的。 9. 浮点型数据输入时可使用%f、%e/%E或%g/%G,scanf会根据输入数据形式,自动处理。 输出时可使用%f(普通方式)、%e/%E(指数方式)或%g/%G(自动选择)。 10. 浮点参数压栈的规则:float(4 字节)类型扩展成double(8 字节)入栈。所以在输入时,需要区分float(%f)与double(%lf),而在输出时,用%f即可。printf函数将按照double型的规则对压入堆栈的float(已扩展成double)和double型数据进行输出。如果在输出时指定%lf格式符,gcc/mingw32编译器将给出一个警告。 11. Dev-C+(gcc/mingw32)可以选择float的长度,是否与double一致。 12. 前缀L表示long(double)。 虽然long double比double长4个字节,但是表示的数值范围却是一样的。l

      6、ong double类型的长度、精度及表示范围与所使用的编译器、操作系统等有关。 1.整型数据类型C定义了5种整型数据类型。整型数据类型表 序号类型名称说明字节数取值范围1signed char有符号的单字节整数类型1-128+1272short int短整型2-32768+327673int整型4-2147438648+21474386474long int长整型4-2147438648+21474386475long long int长长整型8-9223372036854775808+-9223372036854775807例 输出各种整型类型的字节数#includeint main(void) printf(sizeof(signed char) = %d/n, sizeof(signed char);printf(sizeof(short int) = %d/n, sizeof(short int); /* sizeof的结果都是int型 */printf(sizeof(int) = %d/n, sizeof(int);printf(sizeof(long int) = %d/

      7、n, sizeof(long int);printf(sizeof(long long int) = %d/n, sizeof(long long int);return 0;编译和运行结果rootlocalhost ccc# gcc c15.crootlocalhost ccc# ./a.outsizeof(signed char) = 1sizeof(short int) = 2sizeof(int) = 4sizeof(long int) = 4sizeof(long long int) = 8程序说明:sizeof是字节操作符,使用方式,sizeof(数据类型)。sizeof的作用是得到数据类型所占的字节数。我们运行程序使用的环境是Redhat 5 Linux,编译器是GCC。2.无符号整数类型对应有符号类型,还有无符号整数类型。无符号整数类型表 序号类型名称字节数取值范围1unsigned char102552unsign short int20655353unsigned int4042949672954unsigned long int4042949672955unsig

      8、n long long int8例 输出各种无符号整数类型的字节数#includeint main(void) printf(sizeof(unsigned char) = %d/n, sizeof(unsigned char);printf(sizeof(unsigned short int) = %d/n, sizeof(unsigned short int); /* sizeof的结果都是int型 */printf(sizeof(unsigned int) = %d/n, sizeof(unsigned int);printf(sizeof(unsigned long int) = %d/n, sizeof(unsigned long int);printf(sizeof(unsigned long long int) = %d/n, sizeof(unsigned long long int);return 0;编译和运行结果rootlocalhost ccc# gcc c16.crootlocalhost ccc# ./a.outsizeof(unsigned char) = 1sizeof(unsigned short int) = 2sizeof(unsigned int) = 4sizeof(unsigned long int)

      《C语言数据类型及表示范围》由会员s9****2分享,可在线阅读,更多相关《C语言数据类型及表示范围》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.