Was ist ein tragbarer Wert für UINT_MIN?
-
29-09-2019 - |
Frage
In limits.h
gibt es #defines für INT_MAX
und INT_MIN
(und SHRT_ * und LONG_ * und so weiter), aber nur UINT_MAX
.
Soll ich definieren UINT_MIN
mich? Ist 0
(positive Null) ein tragbarer Wert?
Lösung
Wenn Sie sein wollen „typsicher“ Sie 0U
verwenden könnte, also wenn Sie es in einem Ausdruck verwenden, werden Sie die richtigen Aktionen zu unsigned
haben.
Andere Tipps
Es ist eine ganze Zahl ohne Vorzeichen - definitionsgemäß den kleinsten möglichen Wert 0. Wenn Sie eine gewisse Berechtigung wollen neben nur der gesunde Menschenverstand, die Standard sagt:
6.2.6.2 Integer-Typ
- Für unsigned integer-Typen außer
unsigned char
, werden die Bits der Objektdarstellung in zwei Gruppen unterteilt werden: Wertbits und Füllbits (es braucht nicht jede der letzteren zu sein). Wenn es N Wertbits, jedes Bit wird eine andere Potenz von 2 zwischen 1 repräsentieren und 2 ^ ( N -1), so dass Objekte dieses Typs wird fähig sein, repräsentieren Werte von 0 bis 2 ^ ( N -1) eine reine binäre Darstellung verwendet wird; dies gilt als Wertdarstellung bekannt sein. Die Werte aller Stopfbits sind nicht spezifiziert.
Sie könnten std::numeric_limits<unsigned int>::min()
verwenden.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow