黑马程序员技术交流社区

标题: 移位符>>和>>>区别是什么? [打印本页]

作者: liuch111    时间: 2015-7-11 17:30
标题: 移位符>>和>>>区别是什么?
什么时候用>>> 移位符
作者: zhwfa1991    时间: 2015-7-11 17:39
>>带符号右移和>>>不带符号右移,带符号位的右移,高位补符号位,也就是正数补0,负数补1,不带符号位的补0
作者: 不怕黑人    时间: 2015-7-11 17:58
右移有两种:   
      右移运算符>>(有符号)   
  用来将一个数的各二进制位全部右移若干位.例如:a   =   a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值.   
  如:a   =   00110111,则a>>2=00001101,b=11010011,则b>>2   =   11110100   
  右移一位相当于除2   取商,而且用右移实现除法比除法运算速度要快   
     无符号右移运算符>>>   
  用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a   =   00110111,则a>>>2   =   00001101,b=11010011,则b>>>2   =   00110100

作者: e咕噜    时间: 2015-7-11 22:20
1、当移位的数是正数的时候,>> 和>>>效果都是一样的;
2、当移位的数是负数的时候,>>将二进制高位用1补上,而>>>将二进制高位用0补上,这就导致了>>>将负数的移位操作结果变成了正数(因为高位用0补上了)。
作者: gongyanfa123    时间: 2015-7-11 22:33
无符号右移运算符>>>    ,   右移运算符>>(有符号)
作者: GiveUp    时间: 2015-7-11 22:41
学习了。。。真忘了
作者: yongaidongbing    时间: 2015-7-11 23:13
>> 什么时候都能用除了右移没任何影响      >>>除了右移之外还去除了负(—)号    移完都成为正
作者: 莱克神    时间: 2015-7-11 23:26
受教了,原来如此
作者: CLTDEZHUCE    时间: 2015-7-11 23:51
>>带符号右移>>>不带符号右移
作者: 时光无痕    时间: 2015-7-12 00:00
>>>到底有什么优势啊,正数左移都一样,唯一的就是负数了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2