nehme ich eineOne‘s Complement einer Reihe
int a = 512
Jetzt Variable haben, wenn ich eine Anwendung, die ~ Einerkomplement in c.How bedeutet, ich bin -513 als die Ausgabe zu bekommen.
int ist mindestens 16 Bits in Größe und binäre Äquivalent von 512
0000 0010 0000 0000 ist Und jetzt, wenn Sie tun, um seine eigenen ergänzen wird es
1111 1101 1111 1111. Jetzt mir jemand sagen könnte, warum Die Ausgabe ist -513.
Kann ich jetzt hoffen, dass Leute in diesem Forum meine Frage verstanden haben.
Der Operator '~' wird "bitweise Negation" genannt. "One's Complement" ist nur eine Möglichkeit, vorzeichenbehaftete Zahlen darzustellen, aber es gibt andere, wie das weit verbreitete "Zweier-Komplement". Im Fall von "Einerkomplement" verhält sich die bitweise Negation wie eine arithmetische Negation, die in C vom unären "-" Operator ausgeführt wird (es gibt auch ein binäres "-"). Sie haben jedoch eine völlig andere Bedeutung. '~' schaltet nur jedes Bit um und ignoriert dabei jede Semantik des zugrunde liegenden Typs. '-' kennt die Semantik des Typs. – datenwolf