2. Signierte und nicht signierte Nummern

Symbolbit im Computer

1. Das höchste Bit des Datentyps wird verwendet, um das Symbol der Daten zu identifizieren

  Die höchste Ziffer ist 1, was darauf hinweist, dass diese Zahl negativ ist

 Das höchste Bit ist 0, was anzeigt, dass diese Zahl positiv ist

2. Verwenden Sie eine Ergänzung, um eine signierte Nummer im Computer anzugeben

Das Komplement der positiven Zahl ist die positive Zahl selbst

Das Komplement der negativen Zahl ist der absolute Wert der negativen Zahl

3. Verwenden Sie den Originalcode, um vorzeichenlose Zahlen im Computer darzustellen

Vorzeichenlose Zahlen sind standardmäßig positive Zahlen

Vorzeichenlose Nummer ohne Vorzeichenbit

4. Für vorzeichenlose Nummern fester Länge

MAX_VALUE + 1 -> MIN_VALUE

MIN_VALUE - 1-> MAX_VALUE

5.signed 和 unsigned 

Variablen in der Sprache C sind standardmäßig signierte Typen

Das Schlüsselwort ohne Vorzeichen gibt an, dass die Variable vom Typ ohne Vorzeichen ist

Das vorzeichenlose Schlüsselwort kann nur Variablen vom Typ Integer ändern

 

Beispiel eins

#include <QCoreApplication>
 
int main (int argc, char * argv [])
{
    QCoreApplication a (argc, argv);
 
    unsigned int i = 6;
    int j = -12;
 
    wenn ((i + j)> 0)
    {
        printf ("i + j> 0 \ n");
    }}
    sonst
    {
        printf ("i + j <0 \ n");
    }}
    return a.exec ();
}}
Was ist die Ausgabe des Programms?

Das Ergebnis ist i + j> 0 Ursache: Wenn vorzeichenlose und vorzeichenbehaftete Zahlen gemischt werden, wird die vorzeichenbehaftete Zahl in eine vorzeichenlose Zahl umgewandelt und anschließend die Berechnung durchgeführt. Das Ergebnis ist eine vorzeichenlose Zahl.

 

Beispiel zwei:

/ *
 * Falsche Verwendung von int ohne Vorzeichen als Schleifenvariable
* /
void example2 ()
{
    unsigned int i = 0;
 
    für (i = 9; i> = 0; --i)
    {
        printf ("i =% u \ n", i);
    }}
 
}}
 
int main (int argc, char * argv [])
{
    QCoreApplication a (argc, argv);
 
    Beispiel2 ();
 
    return a.exec ();
}}
Ausgabeergebnis: Der Druckvorgang wird die ganze Zeit fortgesetzt, da der Minimalwert der vorzeichenlosen Zahl 0 ist. Wenn 0 um 1 abnimmt, wird dies zu einer Maximalzahl, wodurch die Zyklusbedingung immer erfüllt wird.

 

Wow
Veröffentlichte 206 Originalartikel · lobte 18 · 70.000 Aufrufe

Ich denke du magst

Origin blog.csdn.net/lvmengzou/article/details/104221967
Empfohlen
Rangfolge