1

ulong を uint32 に変換するにはどうすればよいですか? 単純なキャストが機能していません。私にとってうまくいくのは、longを文字列に変換してから、文字列を再びintに解析することです。

しかし、これは本当に間違っているようです。もっと良い方法はありますか?

4

1 に答える 1

3

Paul Rが言ったように、「単純なキャスト」の意味がわかりません。次の両方がうまく機能しています(そして、ULONGLONGでテストしていることに注意してください)。

  1. 直接キャスト:

    unsigned long long val1 = (unsigned long long)75;
    UInt32 val2 = (UInt32)val1;
    NSLog( @"%qu, %lu", num1, num2 );
    // OUTPUTS: 75, 75

  2. NSNumber の使用:

    NSNumber* val1 = [NSNumber numberwithUnsignedLongLong:75];
    NSNumber* val2 = [NSNumber numberwithUnsignedInteger:[val1 usignedIntegerValue]];
    NSLog( @"%qu, %u", [num1 unsignedLongLongValue], [num2 unsignedIntegerValue]];
    // OUTPUTS: 75, 75

于 2012-06-04T16:06:59.043 に答える