Ich möchte erhalten das Zeichen einer Zahl ohne eine logische Anweisung. Bereits eine vordefinierte Methode ist verfügbar Math.Sign()
. Aber ich muss in meinem eigenen Stil implementieren.Erhalten Sie Zeichen einer Zahl ohne logische Anweisung in C#
Die Versuchte C# Code:
public int GetSign(int value)
{
int bitFlag = 1;
var m = Convert.ToString(value, 2);
int length = m.Length;
if (m[length - 1] == '1')
{
bitFlag = -1;
}
return bitFlag;
}
Zustand:
- Wenn das letzte Bit
1
dann-1
- zurückkehren, wenn das letzte Bit
0
dann1
Mit freundlichen Grüßen sist mir, wie die oben IF
Statement entfernen ...
Wie korreliert die "Bedingung" mit dem Vorzeichen von Zahlen und 'Math.Sign()'? Sie überprüfen, ob die Zahl ungerade oder gerade ist, nicht ihr Vorzeichen. – zerkms
_ "Ich muss in meinem eigenen Stil implementieren" _ - warum? Was _spezifisches_ Problem versuchen Sie hier zu lösen? Was ist mit 'Math.Sign()' falsch? Gibt es irgendwelche Einschränkungen für Ihre gewünschte alternative Implementierung? Warum ist deine Version so verworren? Was ist falsch mit 'Rückgabewert <0? -1: (Wert> 0? 1: 0); '(also warum _" ohne eine logische Aussage "_)? –