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.