C++Primer(第四版)答案之第二章 .pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++Primer (第四版)答案之第⼆章 2.1 都是整型,但是存储空间不⼀样。在32位机器上short有2个字节,int有2个字节,⽽long需要4个字节。由于存储空间不同,表⽰的范围 也不同。这⾥short和int的表⽰范围从-32768到32767,long的表⽰范围从-2147483648到2147483647 2.2 有符号数的最⾼位,⽤1表⽰负数,0表⽰正数,⽆符号数没有此规则。 2.3 32767,这是有符号的short。⽆符号的short的最⼤值是65535。 2.4 unsigned short表⽰0~65535,总共65536个整数,⽤100000来赋值,溢出,则实际的值是100000%65536=34464。 2.5 float和double都是表⽰浮点数,但是可以表⽰的有效数字不同,float的只有6位,⽽double的有10位。float⼀般32位,4个字 节,double⼀般64位,8个字节。 float和double的范围是由指数的位数来决定的。float的指数位有8位,⽽double的指数位有11位,分布如下: float:1bit(符号位)+8bits(指数位+23bits(尾数位) double:1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位) float的指数范围为-127~128,⽽double的指数范围为-1023~1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所 能表达的绝对值最⼩的数;⽽正指数决定了浮点数所能表达的绝对值最⼤的数,也即决定了浮点数的取值范围。float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。 float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是⼀个隐含着的“1”,由于 它是不变的,故不能对精度造成影响。 float:2^23 = 8388608,共七位,意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字; double:2^52 = 4503599627370496,⼀共16位,同理,double的精度为15~16位。 2.6 参考2.5,如果为了安全和省事考虑,都⽤double。其实利率、偿还⾦额可以⽤float表⽰,太多的有效数字没有意义。 double的精度更⾼,如果对精度没有特别的要求,直接⽤float即可。 2.7 (a) a是char类型的字符,La是wchar_t类型的字符,后两个分别是相应类型的字符串,字符串⾥只有两个字符,⼀个是 ‘a’,⼀个 是\0。 (b) 10u表⽰⽆符号10,10L表⽰long类型的10,10uL表⽰unsigned long的10,012表⽰⼋进制,0xC表⽰⼗六进制。 (c) 3.14是普通浮点型的表⽰,3.14f表⽰float类型的浮点型。3.14L表⽰扩展精度的浮点型,⼩写的l也是这个意思。 2.8 (a) int 或者 short 或者 long (b) -10u确实是unsigned int类型,居然是-10,实际输出是4294967286 (c) -10.是float类型或者double类型 (d) -10e-2 是float类型或者double类型 2.9 除了d,e,f是⾮法的,其余的都是合法的。 整数后⾯不能加f。 浮点型都是有符号的,没有⽆符号浮点型。 f的第⼆⾏,少⼀个双引号。 2.10 ⾮常简单,就是要熟悉转义字符。 #include stdio.h int main() { printf(2M\n); printf(2\tM\n); return 0; } 2.11 如果要输⼊⽐较复杂的数,利⽤pow函数⽐较好。 #include stdio.h #include math.h #include iostream using namespace std; int main() { float a, b; while (cin a b) printf(%f\n, pow(a, b)); return 0; } 但,这⾥本意是输⼊⽐较简单的数,来理解变量的运⽤。 #includ

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档