V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
c742435
V2EX  ›  程序员

这个>>>0是什么意思

  •  
  •   c742435 · 2013 年 8 月 7 日 · 4791 次点击
    这是一个创建于 4546 天前的主题,其中的信息可能已经有所发展或是发生改变。
    var len:int = (buffer.readUnsignedByte() << 16 | buffer.readUnsignedByte() << 8 | buffer.readUnsignedByte()) >>> 0;

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

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

    那目前只能理解为 是没用又懒得删掉的代码了
    Mutoo
        10
    Mutoo  
       2013 年 8 月 8 日
    >>>会把左边的数当作uint对待,>>>0相当于强制转换为uint
    deasel
        11
    deasel  
       2013 年 8 月 9 日
    @c742435 js是弱类型,数字相关确实只有一个Number类型,但是也支持浮点数,所以这个操作在js里面用的还比较多。强类型语言里面应该也存在一些类似的类型转换方式吧,比如 3+''='3'。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 21:49 · PVG 05:49 · LAX 13:49 · JFK 16:49
    ♥ Do have faith in what you're doing.