Vorzeichen ändern?
-
Sorry mein Fehler!
Meinte sowohl unary- als auch subtraktion
-
y*=~0;
-
Bits umkehren kannst Du mit dem XOR operator ^. Aber das Umdrehen des Vorzeichenbits ist nicht das selbe, wie eine Subtraktion von 0.
-
Servus,
wie wäre es mit einer XOR-Verknüpfung? Hier musst du aber auf die Bitfolge deines Systemes achten (little oder big Endian)
Arbeitsweise:
1 xor 1 -> 0
0 xor 1 -> 1oder
0 xor 0 -> 0
1 xor 0 -> 1
-
Wie siehts mit dem 2er Komplement aus?
Gruß,
Andy
-
y = x * -1
-
Da Coder! schrieb:
Sorry mein Fehler!
Meinte sowohl unary- als auch subtraktion
dumm, wenn man fremdwörter verwedet, aber sie nicht kennt. :p
-
1. wozu brauchste das?
2. soll es für alle datentypen gültig sein?ansonsten würde es ja für float, int, ... reichen das erste bit zu ändern...
bb
-
y=x*cos(M_PI) :p
-
unskilled schrieb:
ansonsten würde es ja für float, int, ... reichen das erste bit zu ändern...
brauche es just 4 fun.
wie ändere ich denn das erste bit?
-
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.