重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言总并没有左移函数和右移函数。左移和右移是位运算符,仅仅适用于整数型的数据。
创新互联主营单县网站建设的网络公司,主营网站建设方案,APP应用开发,单县h5成都微信小程序搭建,单县网站营销推广欢迎单县等地区企业咨询
假设0010
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0。
00102 就是1000 实际是做的*4。
10002 计算 0010 实际做的是/4。
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。
位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。
移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。具体移位规则如下所示。
位移位运算符的优先级如下:
·算术运算符 优先于 位移位运算符 优先于 关系运算符
·位移位运算符是同级别的,结合性是自左向右
例如,设无符号短整型变量a为0111(对应二进制数为0000000001001001),
则:a3 结果为01110(对应二进制数为0000001001001000),a不变
a4 结果为04 (对应二进制数为0000000000000100),a不变
又如,设短整型变量a为-4(对应二进制数为1111111111111100),
则:a3 结果为-32(对应二进制数为1111111111100000),a不变
a4 结果为-1(对应二进制数为1111111111111111),a不变
C语言中,“”为左移运算符,“”为右移运算符。
具体使用方法如下:
1、左移运算符()
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a 2 将a的二进制位左移2位,右补0,
左移1位后a = a * 2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
2、右移运算符()
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
例如:a = a 2 将a的二进制位右移2位。
左补0 or 补1 得看被移数是正还是负。