C语言中>>和<<如何使用?

举个列子最好~易懂点的!

C语言中<< 代表左移运算符,>> 代表右移运算符,位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。

<< 代表左移运算符:左移运算符用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃该高位。

例如:设无符号短整型变量a为0111(对应二进制数为0000000100010001),则:a<<3 结果为0888(对应二进制数为0000100010001000)。

>> 代表右移运算符:右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。

例如:var temp = 56 >> 2 变量temp的值为 14,因为56 (即二进制的 00111000)向右移两位等于 14 (即二进制的 00001110) 。

扩展资料:

相关运算规则:

1、在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。

2、移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。

3、位移位运算符的优先级:算术运算符优先于位移位运算符优先于关系运算符,位移位运算符是同级别的,结合性是自左向右。

参考资料来源:百度百科-c语言运算符号

参考资料来源:百度百科-右移运算符

参考资料来源:百度百科-左移运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-29

1、左移运算符(<<):按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

格式:需要移位的数字 << 移位的次数

例如:3<<2

3转换为二进制是0011,所有数字左移2个位置,空位补0,得到1100,即十进制数12。

2、右移运算符(>>):按二进制把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位(正数补零,负数补1)。

格式:需要移位的数字 >> 移位的次数

例如:11 >> 2

11的二进制为1011,所有数向右移2个位置,因为11是正数,所以高位补0,得0010,是十进制的2。

扩展资料:

移位运算符是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

数学意义:

1、在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

2、右移一位相当于除2,右移n位相当于除以2的n次方。

本回答被网友采纳
第2个回答  2019-05-24

C语言中的>>和<<分别是左移运算符和右移运算符,用于整数在二进制形式的移位运算。

1、左移运算符(<<)

规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

语法格式:需要移位的数字 << 移位的次数,例如: 3 << 2,则是将数字3左移2位。

数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

2、右移运算符(>>)

规则:按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。

语法格式:需要移位的数字 >> 移位的次数,例如11 >> 2,则是将数字11右移2位。

数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。

扩展资料:

C语言中的无符号右移运算符(>>>):

按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。其他结构和>>相似。

参考资料来源:百度百科-移位运算符

本回答被网友采纳
第3个回答  2019-08-16

C语言中的>>和<<分别是左移运算符和右移运算符,用于整数在二进制形式的移位运算。

1、左移运算符(<<)

规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。

语法格式:需要移位的数字 << 移位的次数,例如: 3 << 2,则是将数字3左移2位。

数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

2、右移运算符(>>)

规则:按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。

语法格式:需要移位的数字 >> 移位的次数,例如11 >> 2,则是将数字11右移2位。

数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。

扩展资料:

一、C语言运算符号的种类

1 算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)

、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

参考资料来源:百度百科-c语言运算符号

本回答被网友采纳
第4个回答  2019-07-12

>>和<<和是C语言中的“右移运算符”。一般情况下,是按位操作。 

例如:short int a=8;a=a>>1; 1.a=0 000 1000 2.右移一位后:a= 0 000 100 3.补0:a=0 000 

0100 4.化为十进制数:a=4 举例:int a=8;a=a>>1; 1.a=0 000 0000 0000 1000 2.右移一位后:

a= 0 000 0000 0000 100 3.补0:a=0 000 0000 0000 0100 4.化为十进制数:a=4

特点:

1、双目运算符,就像+、-、*、/一样,格式为(数1)>>(数2)

2、数1是被操作数,如被减数、被除数等;数2是右移位数。 

3、优先级低,结合性:从左向右运算 如:8>>1=?表示将被移数向右移动1位 如何操作?

化十进制数为(注意了)对应的二进制数,对应指格式对应。 通通右移,不足补0 3.化为十进制数。 

扩展资料

一、C语言运算符号的种类

1 算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)

、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符

这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.指针运算符

用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符

有括号(),下标[],成员(→,.)等几种。

参考资料来源:百度百科-c语言运算符号

本回答被网友采纳