C语言中,a=5<<2的值为什么是20?

作者&投稿:路胆 (若有异议请与网页底部的电邮联系)
c语言中表达式a=5<<2;a的值为多少?~

<<是移位运算符
5<<2是5的二进制数也就是101左移二位,变为10100也就是20,
所以说a=5<<2;完之后a的值为20,。

5 -- 整型
2 -- 整型
5/2 -- c语言 默认 整型/整型 按整除 得整型。所以是 2
就算是 (float)(5/2) ,也得 2, 化 float 2.0
若写 5. / 2 或 5 / 2. 就得 2.5
c / C++ 语言 的“游戏”规则。初学者常被搞昏。

<<
这是位运算

5的二进制是 101
所有的位左移两位,后面补0 ,就成了 10100
再换成十进制的话,就是20

其实,左移一次就是乘以2, 所以快速计算就是 5 * 4 = 20 啦
之所以有这种算法,是由于计算效率很高

“<<”左移运算符是针对二进制数的。先5转换成二进制数是:101,左移两位是:10100,就是十进制的20。其实左移n位就是 乘2的N次方。

因为是2进制左移
5是101
左移2后是10100就是20

a=5的二进制是101,<<2是右移2位,就是10100,20的二进制

左移乘2,右移除2


C语言 表达式(a=5,b+=a++,a)的值是?
从左往右依次算,结果是最右边一个表达式的值,即最后结果为a的值6

c语言int a=5,b=7;a+=a++||b++结果a=?
a=7.a+=a++||b++ 可以看作是 a = a + (a||b);a++;b++;所以,a||b = 1 然后再+1, 5+2=7

C语言 假设变量a.b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值...
答案是8,关键是看懂表达式a>b?a++:b++的意义 这个表达式就等于ifa>b,a=a+1,else,b=b+1 然后答案就变得很简单了5大于2 所以a 的值加1 记者吧a和b相加 得结果8

c语言。。int a=5,b=3,w=1,x=2,y=3,z=4; (a=w>x)&&(b=y>z);最后b的...
主要看最后的一个表达式求值[(a=w>x)&&(b=y>z)]这个表达式的值是多少呢?显然不是true就是false,因为这是个逻辑表达式 先看&&前面的表达式,求值是false,w>x是false,所以a=0这个表达式的值也是false,那么现在就不需要看&&后面的值了,因为不管后面是什么0&&0=0,0&&1=0,所以表的式[(...

int a=5;a++ 此处表达式a++的值是多少, 我知道是5,但不知道为什
a++这个表达式是执行++之前的a的值,没有其他更深层的原理,因为这是语言设计者定义的;++a是执行++之后的a的值,同样也是语言设计者定义的;大概理解为++在前表示先执行了++,++在后表示后执行了++

关于C 语言的题!若 int t, a=5,b=6,w=1,x=2,y=3,z=4,则经过 t=(a=w>...
很显然,b应该等于6 t=(a=w>x)&&(b=y>z)按照一般的左-》右编译器计算顺序,t=(a=w>x)&&(b=y>z)等价于 t = ((a=w>x)&&(b=y>z));(a=w>x)&&(b=y>z)在计算时,(a=w>x)将会先于(b=y>z)计算;a=w>x,由于=的优先级最低,w>x先计算,也就是说a最终将会等于...

C语言中变量被重复定义怎么算,懵逼了?
其实同名变量访问用的就是就近原则。比如,if中的t+=a++;访问的a就是int a=6;中的a。而else中的t+=a++;访问的a就是int a=7;中的a。同理,return t+a++;中访问的a就是static int a=5;中的a,因为if和else中的a在这里都超出了它们的作用域了。

C语言,若有定义语句”Int a=5”为什么a++的值是5?
a++和++a都是加1,但是加的方式是不一样的 前者是先用a的值,用完之后再给a加1 后者是先给a加1,加完之后再用a的值。

c语言中%1d和% d的区别是什么?
1、在C语言中,控制符%d表示将一个整型变量输入输出,它是输入输出整型变量的最标准格式,但 有时候为了排版美观和整齐,有意地将一个变量占两或多个变量的位置,是一种个人习惯,例如a=5;printf(“%2d”,a);那输出的5就占了两个变量的位置了,再如a=5;printf(“%d”,a);那输出的5...

在c语言中!a是什么意思?
C语言中提供了自增1运算符++和自减1运算符-- 而且,这两种运算符,还分为前缀运算和后缀运算 如:int a=5;a++; \/\/后缀运算,表示a=a+1 = 5+1=6 a--; \/\/后缀运算,表示a=a-1 = 6-1=5 --a; \/\/前缀运算,表示a=a-1 = 5-1=4 ++a; \/\/前缀运算,表示a=a+1 ...

横山县15189745242: c语言中a=5<<2怎么算 -
道薇亚斯: 5的二进制是101 左移两位 10100 a=20

横山县15189745242: 计算机c语言中a=[5]什么意思 -
道薇亚斯: a=(5)和a={5}都是a=5的意思. a=[5]报错了. 因为[ ]会被认为是数组. int (a)=5 是对的 int {a}=5int [a]=5 是错的. 亲自测试过了.

横山县15189745242: c语言中<<是什么运算符
道薇亚斯: &lt;是向左移位,&gt;&gt;是向右移位 比如int a = 5 ,那么a&lt;&lt;2 表示二进制向左移2位 a = 00101 向左移2位,右边的补0 (00)10100 就变成了20. 向右同理

横山县15189745242: c语言中int a=5怎么计算 a+=a - =a*a 要带个解释… -
道薇亚斯: -40. a+=a-=a*a→a+=a-=25→a+=-20→-40.

横山县15189745242: C语言中,a=5表达式a++,表达式的值是5,a的值是6,对吗?最好说明一下 -
道薇亚斯: 是这个意思,a++是指a先做其他运算再自加1

横山县15189745242: c语言中if(a=5)对于这种表达是什么意思啊?? -
道薇亚斯: 合法if(a=5) 等价于 a=5; if(a)c语言语法很灵活,虽然这样做没错,但因为不易读懂,不提倡.

横山县15189745242: C语言中,如a=5,那么b=( -- a)+(--a)+(--a)和b=(a--)+(a--)+(a--)该怎么计算?
道薇亚斯: B=4+3+2,B=5+4+3,--a先自减再计算,a--是先计算再自减

横山县15189745242: C语言 设a=5,求(a=3*5,a*4),a+5的值 -
道薇亚斯: 按从左到右的顺序计算,并最终返回最右边的表达式的值:先计算a=3*5(之后a=15)再计算a*4最后计算a+5,由于上一步的a*4没有对a重新赋值,所以这一步的a仍然是15,15+5=20,所以对于以下的表达式而言最终返回值是20:( (a=3*5,a*4),a+5 )

横山县15189745242: C语言中,若声明int a=5,b=2; 则表达式b+=(float)(b+a)/2运算后B等于多少 -
道薇亚斯: (b+a)/2=3.5 b+=3.5 b=3.5+2=5.5 因为b是int型的 所以b=5

横山县15189745242: c语言中 若a=5; !(a -- )等于多少? 为什么? -
道薇亚斯: int a=5; printf("!(a--)=%d\n",!(a--)); //---result:0 int a=5; printf("!a--=%d\n",!a--); //---result:0 int a=5; printf("a--=%d\n",a--); //---result:5int a=5; printf("1+(a--)=%d\n",1+(a--)); //---result:6 a-- 计算时用a的值,计算完后a=a-1; --a 先a=a-1,计算时用的是a减一后的值;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网