C数据类型示表范围.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1、C和C++语言中基本的数据类型有:字符型(char),整形(short, int, long), 浮点型(float, double)??类型字节数类型字节数char1short2int根据系统而定,可能是2或4long4float4double8同时字符型和整形还可以继续分为带符号的和不带符号的,默认情况下都是带符号的,如果想使用不带符号的,则使用时带上 unsigned说明即可,如果是带符号的,那么最高位将表示符号位,最高位为0表示为正数,最高位为1表示为负数,因此根据这个可以得到不同类型在分别带符号和不带符号的情况下表示的数据范围:类型范围类型范围(signed)char-128——127unsigned char0——255(signed) short-32768——32767unsigned short0——65535(signed ) int-32768——32767unsigned short0——65535(signed) long-2147483648——2147483647unsigend long0——4294967295float-3.4*10-38——3.4*1038double-1.7*10-308——1.7*10308?2、对于字符型和整形特别需要注意其表示的范围,如果运算导致超出其范围的处理,如以下的代码:int?main()?{?????signed char ch?=?127;????ch?+=?1;????printf(%d\n,?ch);????return 0;?}输出结果为:-128,注意,定义ch时赋予的值为127,已经是char能表示的最大数,其最终结果-128的来历是这样的:第一步:首先127在计算机中用二进制表示为第二步+=第三步:由于ch是带符号的,当最高位为1时,表示是负数,而负数的计算机中是利用补码来存储的,回忆计算负数补码的方法(首先取负数的绝对值,然后求二进制,对二进制取反,在对取反后的值加1,即为负数的补码);第四步:于是根据求补码的反步骤,我们来求最原始的负数,由于本题中补码首-=然后反10000000 = 128,由于本身是负数,即ch为-128.?再看以下一段代码:int?main()?{?????unsigned char ch?=?255;????ch?+=?1;????printf(%d\n,?ch);????return 0;?}输出结果为:0;其分析为:首先ch = 255提升为整形,在计算机的存储为:(000....然后(000....1 = (000...)0001然后再将最后的八位二进制截取给ch,由于最后八位全是0,因此ch = 0了。同理:对于遇到整形int short, long等出现上述情况时,我们也可以这样分析得到结果。速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)double 1.7 * 10^308 (8 Bytes)unsigned int 0~4294967295long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:18446744073709551615__int64的最大值:9223372036854775807__int64的最小值:-9223372036854775808unsigned __int64的最大值:18446744073709551615详细教程:====================符号属性?长度属性?基本型?所占位数?取值范围?输入符举例?输出符举例?-- -- char 8 -2^7 ~ 2^7-1 %c %c?、?%d?、?%usigned -- char 8 -2^7 ~ 2^7-1 %c %c?、?%d?、?%uunsigned -- char 8 0 ~ 2^8-1 %

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档