Ich bin auf Edabit auf diese Herausforderung gestoßen und konnte diese bitweise Operationslösung nicht ausarbeiten.
notNotNot = (a,b) => !!(a%2 >> b)
Die Herausforderung:
//Something which is not true is false, but something which is not not true is true!
//Create a function where given n number of "not", evaluate whether it's true or false.
//Examples:
notNotNot(1, true) ➞ false
// Not true
notNotNot(2, false) ➞ false
// Not not false
notNotNot(6, true) ➞ true
// Not not not not not not true
Ich habe einige Nachforschungen angestellt, dass dieser Betreiber:
Verschiebt sich nach rechts, indem Kopien des am weitesten links liegenden Bits von links hineingeschoben werden und die am weitesten rechts liegenden Bits abfallen.
Das glaube ich verstanden zu haben (zB das 5 >> 1gleiche wie das, 0101 >> 1was ausgewertet wird 0010), aber ich kann nicht sehen, wie das mit einem Booleschen Wert funktioniert? Ich weiß, truebewertet zu 1und falsezu 0.
notNotNot(2, true): Es wird zurückkehren false, aber nicht wahr ( !!true) sollte true...
falsezu auflösenden true.
notNotNot = (a,b) => !!((a%2)^b)stattdessen sagen ...
(a, b) => !!((a + b) % 2)?
true=1(dezimal) =01(binär), um eins nach links verschoben,10binär oder2dezimal erzeugt wird.