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语言运算符号

本回答被网友采纳

C语言中>>和<<如何使用?
1、左移运算符(<<):按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。格式:需要移位的数字 << 移位的次数 例如:3<<2 3转换为二进制是0011,所有数字左移2个位置,空位补0,得到1100,即十进制数12。2、右移运算符(>>):按二进制把所有的数字向右移动对应...

C语言中>>和<<如何使用?
C语言中<< 代表左移运算符,>> 代表右移运算符,位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。<< 代表左移运算符:左移运算符用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃...

C语言中>>和<<如何使用?
在C语言中,位移运算符<>扮演着重要的角色,它们分别用于数据的左移和右移操作。位移运算符是基于二进制数的,通过调整位数来实现数据的扩展和压缩。以下是这两种运算符的详细解释:左移运算符<<,它将一个数的二进制位全部左移指定的位数,右操作数必须是非负。例如,无符号短整型变量a的值为0111(...

C语言中的"<"和">"有啥区别
(使用cout<<" "; 输出结果为:)3.语法:cout<<' '是使用字符常量进行输出,而cout<<" "是使用字符串常量进行输出。例子:- Using cout<<' ' outputs:(使用cout<<' '输出结果为:)- Using cout<<" "; outputs:(使用cout<<" "; 输出结果为:)4.输出内容:cout<<' '只输出一个空格...

c++中的“<<”“>>”表示什么?
两个大于号为向右移位,同理,两个小于号为二进制向左移位。(即乘以多少或除以多少)例如:int main(){ int a = 16;cout<<(a<<4)<<endl;cout<<(a>>4)<<endl;\/\/但是a的值并没有改变 a >>= 1;\/\/此时a的值改变了 cout<<a<<endl;cin>>a;return 0;} 输入的结果分别为256,1;...

c语言中的字符是如何比较大小的?
1、C语言中字符是使用char来定义的,使用关系运算符(>,<,=)即可对字符进行比较。2、在编译器中定义a、b两个字符型变量,并为其赋值。3、运行代码后,我们可以得到如图所示结果。1表示条件为真,0表示条件为假。4、字符串使用char[]来定义,可以使用strcmp()来判断大小,也可以使用关系运算符(...

C语言中按位或,与,非是怎么用的,怎么运算?
c语言中>>=运算子是怎么用的?能举例最好 首先,">>"是一个运算子,叫做右移运算子,与之对应的有"<<"左移运算子。其次,">>="或是"<<="与"+=","-=","*=","\/="等等这些运算子作用是相同的。通常可以使用位移运算子做快速的"*2"或"\/2"运算 比如:int a=32;printf("%d",(...

C语言中<<怎么使用?有例子不?
左移运算符<< 位运算符的对象只能是整型数据或字符型数据,不能是实型数据,一律按二进制补码参加运算,运算结果是一个整型数据。如整型数据int x =12; x<<2; 那么x值变为48

c语言里负数和正数如何比较大小
在C语言中,比较负数和正数大小主要使用比较运算符。这些运算符包括:大于(>),小于(<),大于等于(>=),小于等于(<=)。无论数值是负还是正,这些运算符都可以正常进行大小判断。比较操作在C语言中非常常见,例如,可以使用if语句结合比较运算符来判断两个变量的大小关系。比如,定义整型变量a和b...

在C语言中,<<、>>是什么意思?
<<和>>在c中是用来做位运算的,在C++中被重载了,即可以做位运算也可以做输入输出zhi流。区别如下:1、应用场合不同:C语言是结构化和模块化的语言,是面向过程的。当程序的规模较小时,C语言运用起来得心应手。但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性;正是因为...

相似回答