发布网友 发布时间:2023-03-23 01:01
共5个回答
热心网友 时间:2023-10-12 19:45
c语言 a<<=1与a<<1的区别:
1、运算符号的含义不同
<<=是左移赋值运算符,a<<=b是把a的二进制数左移b位,然后把结果赋值给a;
<<是左移运算符,a<<b是把a的二进制数左移b位。
2、运算结果不同
a<<=1表示把左边运算数a的二进制数进行左移1位运算,然后把计算的结果赋值给a,会改变a的值;
a<<1表示把左边运算数a的二进制数进行左移1位运算,不改变a的值。
3、a<<=1和a<<1运算后的a的值不一样
举例说明:
a<<=1例子:假设a为11100101,那么进行左移1位运算后结果为11001010,然后把这个值赋值给a,那么a就变为11001010。
a<<1例子:假设a为11100101,那么进行左移1位运算后结果为11001010,但是a的值不变还是为11100101。
扩展资料:
<<、=运算符在C语言中的功能:
1、<<的功能
把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。如a<<b,则将数据a格比特位向左移b位,即左移a位就是将数据扩大至原来的2的a次方倍。
2、=的功能
对对象进行赋值,如a=b,则a的值为b。在c语言中也常常将赋值运算符=与其他的运算符结合起来,表示按照优先级顺序处理对象后,再对对象进行赋值。
参考资料:百度百科-C语言运算符
热心网友 时间:2023-10-12 19:45
c语言 a<<=1与a<<1的区别:
1、表示的含义不同
a<<=1表示左移运算后,对a进行赋值。
a<<1表示只对a进行左移运算。
2、运算的结果不同
a<<=1在运算后,a的值会变成a进行左移运算后的值。
a<<1在运算后,a的值不会改变。
扩展资料
<<、=运算符在C语言中的功能:
1、<<的功能
把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。如a<<b,则将数据a格比特位向左移b位,即左移a位就是将数据扩大至原来的2的a次方倍。
2、=的功能
对对象进行赋值,如a=b,则a的值为b。在c语言中也常常将赋值运算符=与其他的运算符结合起来,表示按照优先级顺序处理对象后,再对对象进行赋值。
热心网友 时间:2023-10-12 19:46
1.运算步骤长度不同
<<是左移运算符,=是赋值运算符,前者的优先级要大于后者。因此在a<<=1在这个表达式当*进行了两步:
第一步是a<<,a(即二进制的值)向左移。
左移运算的两个操作数应为整数类型。第一个操作数是要进行移位操作的数,第二个操作数指定第一个操作数移动的位数。如果第二个操作数等于0则不发生任何移位。因此a不发生位移。
第二步是=1,将1赋予给a,也就是a=1。
而a<<1只发生了左移,也就是只进行了一步。
2.最后a的值不同
上面提到a<<=1的第二步是将1赋予给a,也就是a=1。因此最后a的值是1。
而a<<1将a(即二进制的值)向左移动了一位,高位补0,低位遗弃,但是a的值不变,因此两个a的值不同。
3.运算结果不同
最后a<<=1整个表达式的值为1,而a<<1表达式的值等于变量a(即二进制的值)向左移动了一位之后的值。
扩展资料:
<<、=运算符在C语言中的功能
1.<<的功能
把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。如a<<b,则将数据a格比特位向左移b位,即左移a位就是将数据扩大至原来的2的a次方倍。
2.=的功能
对对象进行赋值,如a=b,则a的值为b。在c语言中也常常将赋值运算符=与其他的运算符结合起来,表示按照优先级顺序处理对象后,再对对象进行赋值。
参考资料:百度百科-左移运算符
热心网友 时间:2023-10-12 19:46
在C语言中<<是左移运算符, <<=是左移赋值符热心网友 时间:2023-10-12 19:47
a<<=1等价于a=a<<1,就是将a按位左移后将值赋值给a