c语言a=!a​怎么理解,举个例子说明?

如题所述

这条语句一般是进行0-1之间的转换。
比如我们有一个led灯,变量a控制它的高低电平,在程序里面
while(1)
{
a=!a;
delay(1000)//延时1s

}
如果a初值是0,进入循环a=!a,其中!a就是1,然后延时1s之后,现在!a就是0了,如此反复,就实现了led灯每个1s闪烁一次

这是一个单片机领域的例子,在纯软件里面,也是如此来让a的值在0-1直接变化,可以作为一个标志,比如某个事件启动-停止这样的转换
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-13
这句话的意思就是,如果a 是 0, 则 a = !0, 也就是a = 1; 如果a 是其它数值, a = 0;

一般用于真假之间转换。

----如果满意,请采纳,你的采纳对于我们很重要----
----能言善编 团队----
第2个回答  2014-06-13
例子:
int a=10;
a=!a;
就相当于a!=10;
整型变量a等于10.
"!"是非(不)的意思,所以,非a就是说不是a。进而相当于不是10的意思。
所以就是a等于不是10的数。(除10以外都可以)。

c语言a=!a​怎么理解,举个例子说明?
如果a初值是0,进入循环a=!a,其中!a就是1,然后延时1s之后,现在!a就是0了,如此反复,就实现了led灯每个1s闪烁一次 这是一个单片机领域的例子,在纯软件里面,也是如此来让a的值在0-1直接变化,可以作为一个标志,比如某个事件启动-停止这样的转换 ...

速度量纲式怎么理解?
这是量纲的通式。式中的指数α,β,γ…称为量纲指数,全部指数均为零的物理量,称为无量纲量,如精细结构常数即为一无量纲量。此外,如速度的量纲dimV=LT-1,加速度a的量纲dima=LT-2等:​在国际单位制(SI)中,七个基本物理量长度、质量、时间、电流、热力学温度、物质的量、发光强...

小厨房怎么吊顶和如何装饰天花板
2、小厨房怎么吊顶用屋顶的材料制作骨架并将其安装在指定位置。3、安装石膏板并且同时用螺丝固定。必须要切割材料。4、小厨房怎么吊顶安装天花板后,将纱布粘在干墙中的缝隙上,将装饰条固定在天花板的边缘,并添加装饰和材料。​二、如何更好地装饰天花板。1、小厨房怎么吊顶在新房的起居室,你可...

c语言输入一个日期,计算这个日期前一天和后一天的日期。怎么解答?
31,28,31,30,31,30,31,31,30,31,30,31}; \/* 平年每月天数 *\/\/* 判断闰年 1:是; 0:否 *\/\/* 闰年特点:年份是4的倍数但不是100的倍数、年份是400的倍数 *\/int isLeap (int year) { return (year%4=

c语言:编写程序,在有序的数列中查找某数,若该数在此数列中则输出它的...
int a[]={1,2,3,4,5,6,7,9,10,11,12,13,14,15,16};int n,first=0,end=14,mid;scanf("%d",&n);while(first<=end)\/\/不要写成first<end,这样有可能会在最后一次二分(即first=end时)被忽略 { mid=(first+end)\/2;if(a[mid]==n){ printf("your input number's index is...

C语言,求幂级数展开的部分和。刚刚被人乱回答,停止搜索答案所以我再发...
溢出了!,算法逻辑可能正确,但C的int范围只能算到12!,到13!就溢出了,17!当然不行了。尽量不要用pow这样的函数,更不要用直接求阶乘——include "stdio.h"int main(int argv,char *argc[]){int i;double s,x,t;printf("Input x(x∈[0,5])...\\nx=");if(scanf("%lf",&x)!=...

求助一道C语言设计题目
include <stdio.h>int main(){ int year,n=0; for( year=1;year<=3000;year++ ) { if ( (year%4==0 && year%100!=0) || year%400==0 ) n++; } printf("n=%d\\n", n ); return 0;}

C语言 给定平面上任意三个点的坐标(x1,y1)、(x2,y​2)、(x3,y...
int main(void){ double a,b,c,L,s,p,x1,y1,x2,y2,x3,y3;printf("坐标1:\\n");scanf("%lf%lf",&x1,&y1);printf("坐标2:\\n");scanf("%lf%lf",&x2,&y2);printf("坐标3:\\n");scanf("%lf%lf",&x3,&y3);a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));b=...

C语言的水仙花数,怎么搞?
scanf("%d",&N);\/\/输入 for(i=pow(10,N-1);i<pow(10,N);i++)\/\/N是几位数,循环就从10的N-1次方至N次方,比如说N为3,那就是10的2次方(100)至10的3次方(1000){ sum=0;n=i;while(n){ sum+=pow(n%10,N);\/\/计算每一位的N次方的和至sum n=n\/10;} if(sum==i) ...

求如何将这个c语言的scanf、printf转换为c++的cin、cout的形式?
using namespace std;define N 100 char *get_max(char s[]);int main( ){ char s[N] = "";cin>>s;char *p = get_max(s);while(*p){ if(*p>='a'&&*p<='z')p -= 32;p++;} cout<<s<<endl;return 0;} char *get_max(char s[]){ char *max = s;for(char *p = ...

相似回答
大家正在搜