表示整数,小数,字符,逻辑的变量
电脑中的数据都是以二进制的形式存储的
1位二进制能表示0,1
2位二进制能表示00,01,10,11四个数字
3位二进制能表示
0 1 2 3 4 5 6 7
000 001 010 011 100 101 110 111
n位二进制能表示 个数
int变量32位的内存,也就是32位二进制数
也就是 个数字
4294967296/2 = 2147483648
其中一半表示负数 一半表示非负数
-2147483648 ~ -1 0~2147483647
0~5是几个数字?
属性 | 值 | 描述 |
---|---|---|
所占空间 | 4字节 | 4字节=32位 |
最大值 | 2147483647 | 21亿 |
最小值 | -2147483648 | -21亿 |
特点:
8位(bit,b,比特)组成一个字节(Byte,B)
int a=3.99;
cout<<a<<endl;//输出的是3
cout<<int(3.14);//int()表示强制类型转换
int a=2147483647;
a=a+1;
cout<<a;//输出什么?
int a=100000;//10万
int b=100000;//10万
cout<<a*b;//输出什么?
乘法也会溢出
int a=5;
cout<<a/2;//结果是整除的结果
cout<<5.0/2<<endl;//输出2.5 不是整除
int a=5.0/2;//只能存证书,舍去小数
cout<<a<<endl;//输出2
cout<<int(5.0/2);//利用int()得到整除的结果
需要整除结果时
接下来请完成《[整除]找钱》题目
int a=5;
cout<<a%2<<endl;//结果1
cout<<4%2<<endl;//结果是?
int stu=45;
cout<<stu%10;
通过取余解决问题-一个班有45个人,10人一组,剩几个?
接下来请完成《[取余]分组剩余》题目
属性 | 值 | 描述 |
---|---|---|
所占空间 | 8字节 | 8字节=64位 |
最大值 | 9223372036854775807 | 19位数 |
最小值 | -9223372036854775808 | 19位数 |
long long是long long int的简写
与int差别:
接下来请完成《沙海》
属性 | 值 | 描述 |
---|---|---|
所占空间 | 8字节 | 8字节=64位 |
最大值 | 1.79769e308 | 科学计数法,表示1.79769乘10的308次方,300多位数 |
最小值 | 2.22507e-308 | 0.000......000222507 此处省略300多个0 |
精度 | 15,16位 | 精度不够,不能准确表示 |
关于精度:用double存3.12345678901234567890时,存的后几位小数就会出现偏差
存的实际上是3.12345678901234569125
printf输出,保留几位小数
double a=3.12345678901234567890;
cout<<a;//输出3.12346 默认六位有效数字
double a=3.12345678901234567890;
printf("%.20f",a);//小数点后20位小数
//3.12345678901234569125
printf输出,保留几位小数
printf("%.2f",3.555);//四舍五入保留2位小数
printf("%.3f",3.7777);//输出什么?
printf("%.2f",9.999);
保留几位
要输出的小数
当四舍五入遇到进位,会输出什么呢?
自己写一写,试一试吧
cout是C++的输出,printf是C语言的输出,不能混用
printf输出,保留几位小数
printf("%.2f",9.999);
保留几位
要输出的小数
printf("%.2f",1);//输出0.00
//因为1不是小数
接下来请完成《计程车》
cout<<5/2<<endl; //输出2
cout<<5.0/2<<endl;//输出2.5
double a=5/2;
cout<<a<<endl;//输出什么?
double b=5;
cout<<b/2<<endl; //输出什么?
cout<<b+5/2<<endl;//输出什么?
第一题
第二题
double b=2;
cout<<5/2*b<<endl; //输出什么?
第三题
字符是用来表示符号,字母,数字符号等的变量类型,
存储的是'*','a','z','0','\n'等符号
计算机中只能存储2进制数字,无法直接存符号,所以符号,字母等字符都是以编码存储的,就是用数字代表字符
记住 '0' 'A' 'a' 的ASCII码
char a='A';
cout<<a+1<<endl;//输出66
//相当于65+1
cout<<char(a+1);//输出'B'
char a='B';
a=a+32;
cout<<a;
cout<<'1'+1<<endl;
char a='1';
cout<<(a-'0')+1;//减去'0'得到真正数字
接下来请完成《凯撒密码加密》
bool类型是用来存储 “正确”,“错误” 这两种值的
bool a=true; //正确
bool b=false;//错误
bool c=2>1; //正确
bool d=5<1; //错误
cout<<a<<" "<<c<<endl;//true 在输出时会输出1
cout<<b<<" "<<d<<endl;//false在输出时会输出0
//下面的代码输出什么
cout<<(4>5)<<endl;//直接输出判断时要加括号
cout<<(3>=3)<<endl;
cout<<(3==3)<<endl;
bool只有两种结果,要么对,要么错,没有第三种情况
bool a=1;
cout<<a<<endl;//输出1
bool b=0;
cout<<b<<endl;//输出0
bool c=2;
cout<<c<<endl;//输出什么?
2不是0,就代表“正确”,所以c里面存的是true,所以输出1
cout<<bool(999)<<endl;//输出?
cout<<bool(-1)<<endl;//输出?
cout<<bool(-2)<<endl;//输出?
cout<<bool(0)<<endl;//输出?
接下来请完成《大小比较》