tnjk.net
当前位置:首页 >> C语言中,i = ((i + 3)&(~3))是什么意思 >>

C语言中,i = ((i + 3)&(~3))是什么意思

i+3的结果跟3取反后的数相与,结果赋给i; 再一步简化,i+3的结果的二进制数中最低两位置零,该结果赋给i;

#include void main(int argc,char* argv[]) { int i=3; i = ((i + 3)&(~3)); printf("%d",i); } 结果4 表达式为二进制运算: i+3=4 ~3=-4 4&(-4)=4 如下: 数 二进制 十进制 3 00000000000000000000000000000011 3 i+3 00000000000000000000000...

+=是C语言中的自加赋值运算符 x += 3 ; 相当于: x=x+3 ; 与之相类似的运算符还有: *= 自乘一个数 -= 自减一个数 /= 自除一个数 %= 自模一个数 >>= 自身右移n位

(i%3) 就是i除以3的余数。 如果是作为逻辑表达式,那就是“i除以3的余数不等于0"。

这是一个for循环,第一次进入循环时初始化i=1并且j=3并判断是否满足两个分号中间的那个判断条件即(j3)这是一个或语句只要满足一个为真则条件就为真,最后循环叠加,在for语句执行完后为i和j都增加1不知道明白没有,可以追问

1、(3*j),乘法,计算一个int 2、i>>右移,i以二进制形式往右移第1步计算出来的位数 3、&7L,第2步计算的二进制与7的二进制按位与操作

这个要分两个角度。 先取值,再自加。 所以 表达式的值是-i也就是-3 执行后,i值为4.

&&在C语言中是逻辑与的意思,他的运算规则是true&&true的结果是true,其他的(true&&false,false&&true,false&&false)结果都是false 这句话的意思就是i小于等于3并且*p的值为真

这是一个双重循环 for(i=0;i<3;i++) { for(j=0;j<3;j++) } 其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的内嵌循环 i从0到2,i取一个值,j就从0取到2,共循环9次

语句要模拟什么数学问题或工程问题或其他实用问题,无从知晓。只能考虑语法是否正确。 这是赋值语句。把 表达式 (i=j=3

网站首页 | 网站地图
All rights reserved Powered by www.tnjk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com