-8

unsigned int は uint32_t と同じですか? 2 の補数ではない 32 ビットの符号なし整数はどれですか?

uint32_t y = 0xFFFFFFFF;   // gives -1  i dont get why is it negative?
uint8_t x = 0b11111111;    // gives 255 i understand this
4

2 に答える 2

7

表示しているビット パターンは、符号付き整数の場合は -1 を表し、符号なし整数の場合は最大値を表します。

「-1 を与える」と言うときは、それを確認する方法を確認する必要があります。たとえば、printf で出力する場合は、必ず符号なしの書式指定子を使用する必要があります。

于 2013-07-14T18:54:01.080 に答える