0

誰かがこれらの 2 つのビット マスクの読み方を説明できますか?

uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;

基本的に、これをコードが読めない人にどのように翻訳しますか? 小さいのはどっち?

4

1 に答える 1

2

0x1 は 1 の 16 進値であり、2 進数では ~001 として表されます。0 ビット シフトを 0x1 に適用すると、実際には何もシフトしていないため、値は変更されません。1 をシフトすると、~010 の表現が表示されます。これは、2 の列に 1 があり、他のすべての場所にゼロがあるため、古き良き数値では 2 です。

したがって、uint32_t i = 0x1 << 0;より小さい値を持ちuint32_t j = 0x1 << 1;ます。

uint32_t i = 0x1 << 0;
uint32_t j = 0x1 << 1;

NSLog(@"%u",i);   // outputs 1
NSLog(@"%u",j);   // outputs 2
于 2013-09-01T05:00:26.407 に答える