Vorzeichen ändern?
-
am einfachsten indem du nen bitset nimmst (und dann
[0].flip()
oder so)- ansonsten mit ^ und ~... oder du nimmst nen union was du dir deinem datentyp entsprechend aufbaust...bb
-
-
Hi Leuts!
Ich habe da mal etwas rumgespielt und folgendes ist dabei rausgekommen:
int x = -10; x &= ~(1 << 31);
Leider bekomme ich hier nicht eine positive Zahl "10" sondern "2147483638". Was habe ich falsch gemacht?
-
2 hoch 32 = 4294967296
4294967296 / 2 = 2147483648
2147483648 - 10 = 2147483638Du solltest mal nachlesen, wie die Minuszahlen aufgebaut sind. Die gehen nämlich danach rückwärts. So ist die folgende Bitzahl die -1 bei 32 Bit:
11111111 11111111 11111111 11111111
Grüssli
-
y=x*e^i*pi :p
-
@ Dravere
ich habe aber keinen unsigned
-
Da Coder! schrieb:
@ Dravere
ich habe aber keinen unsigned
-
Was denn? Ich dachte bei einem unsigned gibt es kein bit für das vorzeichen und bei einem signed wäre das 1. bit das vorzeichen?
Ich würde es mir ja gerne nachlesen, wie minuszahlen aufgebaut sind. aber mit einer aussage: "les mal nach" aber nicht wo, kann man nicht sehr viel anfangen. das ist eine genau so unhöfliche antwort wie "google.de".
-
Da Coder! schrieb:
Ich würde es mir ja gerne nachlesen, wie minuszahlen aufgebaut sind. aber mit einer aussage: "les mal nach" aber nicht wo, kann man nicht sehr viel anfangen. das ist eine genau so unhöfliche antwort wie "google.de".
Andy2211 hat dich bereits darauf hingewiesen.
Aber da du anscheinend keine Suchmaschinen bedienen kannst:
http://de.wikipedia.org/wiki/Zweierkomplement
-
Da Coder! schrieb:
Was denn? Ich dachte bei einem unsigned gibt es kein bit für das vorzeichen und bei einem signed wäre das 1. bit das vorzeichen?
Ich würde es mir ja gerne nachlesen, wie minuszahlen aufgebaut sind. aber mit einer aussage: "les mal nach" aber nicht wo, kann man nicht sehr viel anfangen. das ist eine genau so unhöfliche antwort wie "google.de".
Ja, so leicht ist das. Deshalb ist
0000 0000 0000 0000 0000 0000 0000 0000
auch 0 und
1000 0000 0000 0000 0000 0000 0000 0000
ist -0.
-
MFK schrieb:
Aber da du anscheinend keine Suchmaschinen bedienen kannst
danke das ich von dir als mensch 2. klasse degradiert werde. service-und-freundlichkeits-wüste-deutschland. perfektes beispiel von dir hierfür. echt das letzte
-
@Da Coder!
Ich finde es das letzte, wie du dich hier aufführst. Ich selber müsste auch zuerst die Googlesuche verwenden, um einen anständigen Artikel dazu zu finden. Wieso kannst du dich also nicht selber darum bemühen? Das ist hier ein freiwilliges und gratis Hilfeforum. Da kann man also wirklich keine Ansprüche stellen kommen und meinen, dass die anderen für einem die Arbeit erledigen sollen.Grüssli
-
er hätte einfach mal den fachbegriff nennen können um zu suchen und nicht sowas wie "ja, schau mal einfach nach! bist du dumm!" in den raum werfen!
http://www.google.de/search?hl=de&q=aufbau+minuszahl
bringt nämlich nix. die suche nach "zweierkomplement" bringt da einiges mehr.
natürlich ist das ein öffentliches forum wo jeder frei steht etwas zu sagen und zu schreiben, aber etwas höflichkeit kann man ja beim schreiben noch erwarten und nicht diese geiz-ist-geil-manier: "ich knall dir halbe informationen hin und sieh du gefälligst selbst wie du klar kommst, versager!".
-
Natürlich ist das ein öffentliches Forum, wo es jedem frei steht, etwas zu sagen und zu schreiben, aber etwas Eigeninitiative kann man ja beim Denken noch erwarten und nicht diese Geiz-ist-Geil-Manier: "Ich kann nicht suchen, also gebt mir einen fertigen Link!".
"Minuszahl", ich schmeiß mich weg.
-
Es hat dich niemand dumm genannt, noch einen Versager.
Aber MFK scheint recht zu haben, du kannst keine Suchmaschinen bedienen. Die können nämlich keine Gedanken lesen. Daher variert man die Suchbegriffe ein wenig und gibt nicht sofort auf. Wenn ich dich wäre, hätte ich auch eher nach Bit gesucht:
http://www.google.ch/search?hl=de&q=Bit&btnG=Suche&meta=
Danach wärst du auf diesen Artikel gestossen:
http://de.wikipedia.org/wiki/Bit
Gleich schon in der oberen Beschreibung, findest du die Binärziffer:
http://de.wikipedia.org/wiki/Binärziffer
Was dich automatisch zum Dualsystem weiterleitet. Ein guter Artikel, den man auch so schon mal lesen sollte. Man könnte aber auch einfach im Artikel nach negativ suchen und findet unter Anwendung einen Artikel zum Zweierkomplement:
http://de.wikipedia.org/wiki/ZweierkomplementInformationssuche ist das A und O in der Informatik. Daran solltest du dringends arbeiten.
Grüssli
-
x = ~x + 1;
-
Um ein beliebiges Bit zu ändern wird die bitposition mit 1 gexodert
unsigned int bitpos = 31; int meineZahl = 255; // 00000000000000000000000001111111 meineZahl ^= (1<<bitpos); // 10000000000000000000000001111111