今日、私は次のようなコードがあるサンプル iOS アプリケーションに取り組んでいます。
unsigned int uCount = 0;
int iJoke = -7;
uCount = uCount + iJoke;
しかし、私がそれを次のように印刷したとき:
╔══════════════════╦══════════════════════╦════════════╗
║ Format Specifier ║ Print Statement ║ Output ║
╠══════════════════╬══════════════════════╬════════════╣
║ %d ║ NSLog(@"%d",uCount); ║ -7 ║
║ %u ║ NSLog(@"%u",uCount); ║ 4294967289 ║
║ %x ║ NSLog(@"%x",uCount); ║ fffffff9 ║
╚══════════════════╩══════════════════════╩════════════╝
%u の出力は 7 だと思っていました。
それから私は次のように使用しました:
unsigned int i = 0;
int j = -7;
i = i + abs(j);
出力は次のようになります。
╔══════════════════╦══════════════════════╦════════╗
║ Format Specifier ║ Print Statement ║ Output ║
╠══════════════════╬══════════════════════╬════════╣
║ %d ║ NSLog(@"%d",uCount); ║ 7 ║
║ %u ║ NSLog(@"%u",uCount); ║ 7 ║
║ %x ║ NSLog(@"%x",uCount); ║ 7 ║
╚══════════════════╩══════════════════════╩════════╝
私の問題は で修正されていますが、最初のケースでabs()
%u が結果として表示された理由を知りたいです。4294967289
助けてください、よろしくお願いします。