not(x) ohne! Operator?

...komplette Frage anzeigen

2 Antworten

X<y||x>y

sherlockhomelez 29.04.2016, 22:17

Das beantwortet meine Frage in keinster Weise..

1
iamaterroristno 29.04.2016, 22:19

Du willst einen operator konstruieren welcher angibt, dass der wert nicht y ist, wie willst du es sonst tun??

0
sherlockhomelez 30.04.2016, 09:56
@iamaterroristno

ok ich erklärs nochmal genau:

ich will x = !x; konstruieren allerdings ohne ! zu verwenden.

Bei der Eingabe von 0 für x soll für !x 1 ausgegeben werden.

Bei der EIngabe von irgendeiner Zahl verschieden von 0 für x soll für !x 0 ausgegeben werden.

Man darf nur die Operatoren ~ & | + << >> also die Bitoperationen Invertieren(~), Verunden(&), Verodern(|) und Bitshift links (<<) und rechts (>>), sowie die arithmetische Operation addieren (+)

als kleine Hilfe ist angegeben, dass negieren hilfreich sein könnte. dazu im folgenden die von mir geschriebene Funktion negate(x)

int negate(x){

   int x = ~x;

   x = x + 1;

   return x;

}

so ähnlich soll auch die funktion not(x) aussehen.

Ich hoffe das war verständlich

Gruß

Alex

  

0
iamaterroristno 30.04.2016, 23:55

Ok sry da kann ich nicht helfen ... Versuchs im programmierer forum

0

~x & 1

sherlockhomelez 24.05.2016, 22:27

nicht ansatzweise..

0
ralphdieter 26.05.2016, 10:05
@sherlockhomelez

Ok, ich bin von boolschen Werten (0, 1) ausgegangen. Für int-Werte musst Du zuerst alle Bits im LSB verodern:

nz(x) = x | x>>1 | x>>2 | ... | x>>63

Dann klappt die Formel wieder: ~nz(x) & 1

0

Was möchtest Du wissen?