c语言学习笔记(5)——进制
进制
1.什么叫进制?
逢n进1;
2.把r进制转成十进制
a*r^0+b*r^1+c*r^2.....
3.把十进制转成r进制
185----->(r进制)
185不停的除r取余,最后把余数倒过来写。
4.不同进制所代表的数据之间的关系
同一个数据的不同的表示形式
一些琐碎的知识
1.前自增和后自增运算符的区别和关系?
++i i++
相同:最终都使i的值加1;
不同:前自增整体表达式的值是i加1之后的值
后自增整体表达式的值是i加1之前的值
优点:代码更精练
自增的速度更快
i = i+1; i += 1; 等价 从寄存器中取到内存加1再放回寄存器
i++,++i 直接在寄存器里面加1
学习自增应该注意的几个问题
1)编程时应该尽量屏蔽掉前自增和后自增的差别
2)i++和++i 单独成一个语句,不要把它作为一个完整复合语句的一部分来使用。
int m = i++ + ++i + i + i++;
printf("%d %d %d", i++, ++i, i);
//这样写不但是不规范的,而且是不可移植的代码(不同机器上的结果不同)
2.三目运算符
格式
A ? B: C
等价于
if(A)B
else C
3.逗号表达式
格式
(A,B,C,D)
功能:从左到右执行
最终表达式的值是最后一项的值
如: int i = (2,4,5,7,8);
printf("i=%d\n", i)
输出的结果:i=8
int i;
int j = 2;
i = (j++, ++j, j+2, j-3);
printf("j=%d", j);
输出的结果:j=1;
1.什么叫进制?
逢n进1;
2.把r进制转成十进制
a*r^0+b*r^1+c*r^2.....
3.把十进制转成r进制
185----->(r进制)
185不停的除r取余,最后把余数倒过来写。
4.不同进制所代表的数据之间的关系
同一个数据的不同的表示形式
一些琐碎的知识
1.前自增和后自增运算符的区别和关系?
++i i++
相同:最终都使i的值加1;
不同:前自增整体表达式的值是i加1之后的值
后自增整体表达式的值是i加1之前的值
优点:代码更精练
自增的速度更快
i = i+1; i += 1; 等价 从寄存器中取到内存加1再放回寄存器
i++,++i 直接在寄存器里面加1
学习自增应该注意的几个问题
1)编程时应该尽量屏蔽掉前自增和后自增的差别
2)i++和++i 单独成一个语句,不要把它作为一个完整复合语句的一部分来使用。
int m = i++ + ++i + i + i++;
printf("%d %d %d", i++, ++i, i);
//这样写不但是不规范的,而且是不可移植的代码(不同机器上的结果不同)
2.三目运算符
格式
A ? B: C
等价于
if(A)B
else C
3.逗号表达式
格式
(A,B,C,D)
功能:从左到右执行
最终表达式的值是最后一项的值
如: int i = (2,4,5,7,8);
printf("i=%d\n", i)
输出的结果:i=8
int i;
int j = 2;
i = (j++, ++j, j+2, j-3);
printf("j=%d", j);
输出的结果:j=1;