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)。

posted @ 2022-04-24 17:55  iZJ"Qq4577105  阅读(156)  评论(0编辑  收藏  举报