C语言学习笔记4

来源:互联网 发布:什么软件可以讲故事 编辑:程序博客网 时间:2024/04/29 19:17
负数的二进制表示(补码):
1.先求其相反数的二进制表示;
2.再各位求反再加1;

按位求反加1的方法可以求任何一个二进制数字的相反数;
所有有符号类型的最小数的二进制补码都是:左边一个1,右边全是0;

char ch = 300;
printf("%d",ch);结果为44,为什么?

300 = 256 + 32 + 8+4
       = 1,0010,1100(二进制)
赋值后ch = 0011,1100(二进制) = 44 (发生截断)

整数类型变量之间互相赋值会保留原有二进制不变,但新数据中的解释方式会改变;

C语言中使用的加减乘除,以及取余操作符:+,-,*,/,%

两个整数相除只保留整数部分;
不能对浮点数和零进行取余;

赋值操作符(=)用于对变量赋值;
左边必须是左值,右边可以当数字使用;

赋值操作符优先级很低,但是比逗号(,)操作符高;
逗号表达式的值为最后一个值;

多个赋值操作符从右向左运算;
复合赋值运算符(+=,-=,*=,/=……)与赋值操作符的优先级一样;
num=12;
num *= 2+3;
结果num为60

自增,自简运算符(++,--)只能对变量进行操作;
有两种操作方法(前操作和后操作),区别在于操作的时机;

前操作时优先级非常高,后操作的优先级非常低;
不要在同一条语句中对同一个变量进行多次自增自减;

逻辑表达式的计算结果或者为真或者为假;
逻辑操作符用来拼写逻辑表达式;

C语言中使用数字1表示真,数字0表示假;

布尔类型用来表示真和假这两个内容,布尔类型的名称是bool;
为了使用bool类型,需要包含stdbool.h的头文件;
bool类型只包含true和false;

等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)

所有整数都可以当逻辑表达式使用;
0表示假,其他非零整数都代表真;

求反(!)也是一个逻辑操作符;

逻辑操作符的优先级低于算术操作符;
两个逻辑连接词可以把两个简单的逻辑表达式合并成一个复杂的逻辑表达式;
它们分别是:&&(与),||(或)

&&和||都有短路特性:
当前一个逻辑表达式可以决定整个表达式的结果时,后一个不再计算;
所以一般不要在逻辑表达式中修改变量的值;

位运算符:针对二进制进行计算

按位与(&):
0&0 = 0
0&1 = 0
1& 0=0
1&1 =1
总结:保留较小的;
作用:可以把某些二进制位清0;

按位或(|):
0|0 = 0
0|1 = 1
1| 0=1
1|1 =1
总结:保留较大的;
作用:可以某些二进制位置1

按位异或(^):
0^0 = 0
0^1 = 1
1^ 0=1
1^1 =0
总结:相加对2取模;
作用:可以把某些二进制位置反;

按位求反(~):
把一个数字中的所有二进制位求反;

三目运算符:
三目运算符可以根据一个逻辑表达式,从两个数值中选择一个作为结果;
逻辑表达式 ? a:b;
逻辑表达式为真时为a;
逻辑表达式为假时为b;















0 0
原创粉丝点击