c语言问题:%=,+=,-=,*=,/=,<<,>>,if(!a)都代表什么?怎么用?

 我来答
14556666
2013-02-06 · TA获得超过107个赞
知道答主
回答量:111
采纳率:100%
帮助的人:36.5万
展开全部
呵呵,你是新手吧。你是一个自学者,一直在探索C语言,这次把很多疑问提了出来,是这样吧?让我来回答你的疑问
%=,+=,-=,*=,/=是复合赋值运算符,用法:a%=b就是a=a%b,a+=b就是a=a+b,
a-=b就是a=a-b,a/=b就是a=a/b。这个规律你也发现了吧,就是a+=b当成a+b后,放到a里面。
类似的,a*=b就是a=a*b。

<<和>>都是 位运算符 ,如果有一个数a=255,要把它转换成 二进制形式 即11111110,<<是位左移运算符,如果a<<1则11111110往左移一位,1多出来了1个,丢掉,即11111100,再转换成十进制数,即253。,>>是位右移运算符,如果a>>1则11111110往左移一位,0多出来了1个,丢掉,左边补上0,即0111111,再转换成十进制数,即127。
用法:a(是一个数字)<<(或>>)b(移动的位数)。

if是判断语句,如果( )中的表达式的值非0,则执行下面{ }的语句。
!是”非“的意思,跟在它后面的东西和她(即!)的值必定是1或0。
如(!1)=0,(!1000)=0,(!非0值)=0,(!0)=1。
if(!a)时,如果a=0,则执行{ }中的语句。
举个例子:
int a=0
if(!a)
{
printf("a=0");
}
此时输出a=0.
但如果a不等于0,则不执行"printf("a=0");"

很高兴为你回答问题。
追问
其实我在学校就学c的,只是两年没碰了,很多忘了,现在准备考计算机2级,要捡起来难啊,一看你就是专业的,谢谢
追答
不用谢
zhengduoutan
2013-02-06
知道答主
回答量:22
采纳率:0%
帮助的人:11.3万
展开全部
a =b相当于a=a b,其它的类似,<<是移位(二进制),a<<b相当于a乘以2的b次方,>>是除。if(!a)就是if(a==0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式