led闪烁 取反运算符~和逻辑运算符非!
题目:3颗灯闪烁
// --------------------------------------------------------
案例1:
案例2:
案例3:
案例4:
// --------------------------------------------------------
解析:案例1和案例3,4都是正确的。案例1,2定义位名称,都是在循环里边定义的,其中的案例2,灯灭了没有延时,所以我们是看不到灯灭的那一瞬间的,所以必须加个延时,使灯熄灭听一段时间,从而达到闪烁效果,而不是这样一直亮着。案例3、4定义位名称都是在外面定义的,这种写灯的闪烁方式更简洁,推荐这个方式。
附:第14行的取反运算符不能改成逻辑 ! 非,是达不到效果的。因为非!仅用于0与1,如果是一串那就用取反~运算符
关于位运算~:
对于int a=5,c=~a,c的值为为-6. 为什么什么-6?点击跳转
用!是逻辑取反,它只会是0和1之间互变,用~则是按位取反,如果是unsigned int 类型0,用~取反后会变成65535(0xffff)、unsigned char 的0用~取反就是255(0xff)。
作者QQ4577105