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?

War es hilfreich?

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

     
      
  1. 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.
  2.   

Sie könnten std::numeric_limits<unsigned int>::min() verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top