int main()
{
int a = 1, b = 1, c = 0, d = 0;
c++ || a && b || d++;
}
则 a = 1, b = 1, c = 1, d = 0
{怎么把一个无符号数的某位快速置0
例如:把a的第三位置1
a || (1<<2)即用a和1左移2位相或
怎么把一个无符号数的某一位快速置0
例如:把 b的第四位置0
a & ~ (1<<3)即用a和1左移3位的反相与
怎么利用位运算把一个十进制数转化成一个十六进制数?
例如:503 503 &0xffff f的个数取决于数值的大小 }
{不引用新变量,互换变量值
例如: a = 5 b = 7 a ^= b; b ^= b; a ^= b; }
运算符优先级
x += y == z, y = x + 2, z = x + y + z > 0;
算出 x = 2, y = 4, z = 1
int a = 1, b = 1, c = 0, d = 0;
则 a||c++ && b++ || ++d; printf("%d %d %d\n", b, c, d);
打印结果为:1 0 0
若有(a||c++) && (b++ || ++d);
printf("%d %d %d\n", b, c, d);
打印结果为:2 0 0
--a||c++ && b++ || ++d;
printf("%d %d %d\n", b, c, d);
结果为:1 1 1