C++课堂笔记一
变量和数据类型
- short, int, long, long long类型的变量,可以表示正数,也可以表示负数,称为有符号的整数类型。
unsigned short, unsigned int, unsigned long, unsigned long long类型的变量,只会被看作非负数,称为无符号的整数类型。
有符号整数的表示方法:
将最左边的位(最高位)看作“符号位”。 符号位为0,则表示是非负数,其绝对值就是除符号位以外的部分; 符号位为1,则表示是负数,其绝对值是除符号位以外的部分取反(0变1,1变0)后再加1.
将一个负整数表示为二进制的方法:
- 设置符号位为1
- 其余位等于绝对值取反再加1
数据类型的自动转换
有些不同的数据类型之间是相容的,可以相互赋值。
int a = 11.34 //11.34被自动转换为11后赋值给a
字符型–>整形数据
1
2
3int k = 'a';//k的内容变为'a'的ASCII码,97
printf("%d",k);//输出97整形–>字符型,但只会留下最右边的一个字节(第0位到第7位),其他字节丢弃
1
2
3
4
5int n = 98;
char k = n;//k内容变为98,98是字符'b'的ASCII码
printf("%c",k);类型自动转换示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using namespace std;
int main() {
int n1 = 1378; //1378的十六进制形式是0x562
short n2;
char c = 'a';
double d1 = 7.809;
double d2;
n2 = c+1;//n2变为98 , 97 是'a'的ASCII码
printf("c=%c,n2=%d\n",c,n2); // 输出c=b,n2=98
c = n1;// n1是0x562, 0x62 被当做ASCII码赋值给 c,c变为 'b'
printf("c=%c,n1=%d\n",c,n1); // 输出c=b,n1=1378
n1 = d1;// d1=7.809, 去掉小数部分后赋值给n1,n1变为 7
printf("n1=%d\n", n1); // 输出n1=7
d2 = n1;//d2变为7
printf("d2=%f\n",d2); // 输出d2=7.000000
return 0;
}
常量
字符型常量和变量都占一个字节,内部存放的是字符的ASCII码,它是一个0—255的整数。
“”也是一个字符串常量,他代表一个空串。
“a” 和 ‘a’, 前者是只有一个字符的字符串,后者是一个字符。
符号常量
#denfine 常量名 常量
输入输出
1 | %d:int变量 |
算术运算符和算术表达式
- 赋值运算符
1 | int a; |
- 精度: double(float)>long long>int>short>char
- 溢出:
1 | unsigned int n1 = 0xffffffff; |
两个整数做除法,结果是商,余数忽略(22/5=4)
模运算(求余数 %)
自增运算符“++”:
++a:将a的值加1,表达式返回值为a加1后的值
a++:将a的值加1,表达式返回值为a加1前的值
1 | int n1,n2=5; |