问一个uint,得到一个int

时间:2014-08-20 10:44:49

标签: actionscript-3 debugging int uint

我知道匿名函数的使用必须用简约法来完成,但是:

private function getAnonymFct() : Function
{
    return function () : void
    {
        var num : uint = -1;

        if( num < uint.MIN_VALUE )
            trace( "WTF ??" );
        trace( getQualifiedClassName( num ) );
        trace( num );
    }
}

public function Main()
{
    getAnonymFct()();
}

将跟踪:

int
WTF ??
-1

为什么我的var num神奇地变成了int而不是uint的所有想法?

1 个答案:

答案 0 :(得分:1)

类型uint是无符号整数的简写,-1不是有效的无符号整数,它是有符号整数且小于uint.MIN_VALUE。我假设,为避免明显的运行时错误,actionscript已将num转换为类型int

在AS中,无符号和有符号都存储为32位,-1存储在base10中,因为int在base2中为11111111111111111111111111111111,将其转换为uint它将是基数10中的4294967295uint.MAX_VALUE与原始数字不同10个数量级