<<在C语言中是什么意思?

Python022

<<在C语言中是什么意思?,第1张

在 C 语言中,<<表示左移运算符。它将一个数字向左移动指定的位数,并在移动后用零填充空位。

例如,如果有以下代码:

int a = 8

a <<= 2

那么在执行第二行之后,变量 a 的值将变为 32(8 的二进制表示为 1000,向左移动 2 位后为 100000,十进制表示为 32)。

请注意,如果使用常规的算术乘法来计算等价的结果,则可以使用这个算术运算符来替换左移运算符。例如,上面的代码可以替换为:

int a = 8

a *= 4

左移运算符常用于计算数的幂,因为它比乘法运算符快得多。但是,请注意,使用左移运算符可能会导致精度损失。

1、用来将一个数的各二进制位全部左移若干位。

2、例如:

将a的二进制数左移2位,右补0。若a=15,即二进制数00001111,左移2位得00111100,即十进制数60(为简单起见,用8位二进制数表示十进制数15,如果用16位二进制数表示,结果是一样的)。

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

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

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