• 请不要在回答技术问题时复制粘贴 AI 生成的内容
c742435
V2EX  ›  程序员

这个>>>0是什么意思

  •  
  •   c742435 · Aug 7, 2013 · 5052 views
    This topic created in 4706 days ago, the information mentioned may be changed or developed.
    var len:int = (buffer.readUnsignedByte() << 16 | buffer.readUnsignedByte() << 8 | buffer.readUnsignedByte()) >>> 0;

    AS3语言,Pomelo框架的Package.as文件。

    在我看来似乎不加>>>0也可以正常工作?
    11 replies    1970-01-01 08:00:00 +08:00
    cxe2v
        2
    cxe2v  
       Aug 7, 2013
    多打了一个>???
    貌似此处应该是>>啊
    williamx
        3
    williamx  
       Aug 7, 2013
    >>> bitwise unsigned right shift
    fancle
        4
    fancle  
       Aug 8, 2013 via Android
    相当于int(),但据说效率更高
    cxshun
        5
    cxshun  
       Aug 8, 2013
    话说貌似每个语言都有吧,无符号右移。但移0位貌似没啥用啊,这代码是坑人的吗?
    williamx
        6
    williamx  
       Aug 8, 2013
    呀,只看到了>>>,没有看到0。应该一开始是有值的,后来改成0。我也经常这么干。
    deasel
        7
    deasel  
       Aug 8, 2013
    JS里面常常会用到这个,>>>0 其实是一个(快速)取整的操作。不知道AS里面是不是也是这样
    c742435
        8
    c742435  
    OP
       Aug 8, 2013
    @fancle 本身读出来的也是整数啊。
    另外这个操作可以取整?你的意思是可以用在浮点数上吗?
    c742435
        9
    c742435  
    OP
       Aug 8, 2013
    @deasel 这个操作是用在浮点数上的吗?
    e我不太清楚js里有没有浮点数这个概念……不过as本身是强类型的,应该用不到这个取整操作吧。

    那目前只能理解为 是没用又懒得删掉的代码了
    Mutoo
        10
    Mutoo  
       Aug 8, 2013
    >>>会把左边的数当作uint对待,>>>0相当于强制转换为uint
    deasel
        11
    deasel  
       Aug 9, 2013
    @c742435 js是弱类型,数字相关确实只有一个Number类型,但是也支持浮点数,所以这个操作在js里面用的还比较多。强类型语言里面应该也存在一些类似的类型转换方式吧,比如 3+''='3'。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3045 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:40 · PVG 13:40 · LAX 22:40 · JFK 01:40
    ♥ Do have faith in what you're doing.