c++ primer 学习笔记 第二章 变量和基本类型

对于 unsigned 类型来说,编译器必须调整越界值使其满足要求。编译器会

将该值对 unsigned 类型的可能取值数目求模,然后取所得值。

为什么-1%256等于255?


取模运算时,对于负数,应该加上被除数的整数倍,使结果大于或等于0之后,再进行运算.
对于上例:
-1+256=255,然后用255%256,结果就是255.
当然也可以-1+512=511,511%256的结果也是255.


Exercise2.1:
int、long 和 short 类型之间有什么差别?

他们的表示数据范围有差别:
 在c语言中:int 两个字节,也就是16位,所以它的范围是2^16-1有符号的是-2^15~2^15-1
                     short 一个字节,8位。范围类推啦;
            long 4个字节,32位。
 在c++中: int 四个字节; 
           short 2个字节;
           long     -2^63 —— 2^63-1

Exercise2.3:
如果在某机器上 short 类型占 16 位,那么可以赋给
short 类型的最大数是什么?unsigned short 类型的最
大数又是什么?

short:

2^15-1 即32767

 

unsigned short:

2^16-1 即65535

Exercise2.5:
float 类型和 double 类型有什么差别?

基本上没有什么区别,都是表示小数
不过它们的宽度不一样,或者说精度不一样,float是单精度,double是双精度
它们表示小数的范围不一样,double能表示的范围,比float大
double在内存中,占8个字节,float占4个字节

float和double的关系就像short跟long的关系一样

Exercise 2.6:

要计算抵押贷款的偿还金额,利率、本金和付款额应分别选用哪种类型?解释你选择的理由。

利率可以选择 float 类型,因为利率通常为百分之几.一般只保留到小数点后 两位,所以 6 位有效数字就足以表示了. 本金可以选择 long 类型,因为本金通常为整数.long 类型可表示的最大整数一 般为 2^31-1(即 2147483647),应该足以表示了. 付款额一般为实数,可以选择 double 类型,因为 float 类型的 6 位有效数字可 能不足以表示.

换行符 \n                      水平制表符\t
纵向制表符 \v               退格符 \b
回车符 \r                       进纸符 \f
报警(响铃)符 \a        反斜线 \\
疑问号 \?                      单引号 \'
双引号 \"


Exercise2.10:
使用转义字符编写一段程序,输出 2M,然后换行。修改
程序,输出 2,跟着一个制表符,然后是 M,最后是换行
符。

#include "StdAfx.h"
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main()
{
    cout<<"2M\n";
	cout<<"2\t"<<"M\n";
	int i;cin>>i; //固定窗口在输入
	return 0;
}


Exercise2.11:
编写程序,要求用户输入两个数——底数(base)和指数
(exponent),输出底数的指数次方的结果。

#include "StdAfx.h"
#include <iostream>
#include "Sales_item.h"
using namespace std;
int main()
{
   int <span style="font-size:18px;">base</span>=0,exponent=1;
   long result=1;
   cout<<"请输入底数:\t";
   cin>>base;
   cout<<"请输入次方数:\t";
   cin>>exponent;
   for(int cnt=0;cnt!=exponent;++cnt)
	   result*=base;
   cout<<base<<"的"<<exponent<<"次方等于:\t"<<result;
   int i;cin>>i;
   return 0;
}

次方输入过大就会产生数据溢出,得到1.#inf



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值