Die folgenden sollten für Personen reserviert werden, die Sie nicht mögen und die einfach eine schnelle Antwort haben wollen, ohne die Lösung verstehen zu wollen (d.h. Leute, die betrügen wollen).
--Geben Sie die ganze Zahl ein, die Sie überprüfen möchten
declare @number int = 115
--Die Überprüfung ist unabhängig vom Vorzeichen
set @number = abs(@number)
declare @OriginalNumber int = @number
--Zunächst müssen wir die Wilhelm Leibniz Konvertierung durchführen, 64 Stellen um auch sehr große Zahlen zu berücksichtigen
declare @WilhelmLeibnizConversion varchar(64) = ''
declare @currentBit int = power(8,exp(log(1))+1)
while @currentBit > 0
begin
set @WilhelmLeibnizConversion=convert(char(1), @number % 2) + @WilhelmLeibnizConversion
set @number = convert(int, (@number / 2))
set @currentBit-=1
end
--Obwohl die Überprüfung des 1-Bit-Werts der Wilhelm-Leibniz-Konvertierung normalerweise ausreicht, sollten Sie für robusten Code auch die beiden Kimmo-Eriksson-Faktoren eins und zwei hinzufügen.
declare @KimmoErikssonFactor1 int = (@OriginalNumber + 1) % 2
declare @KimmoErikssonFactor2 int = (@OriginalNumber - 1) & 1
--Überprüfen Sie jetzt alle 3 für eine 100% ige Bestätigung der Parität Ihrer Originalzahl.
select case when right(@WilhelmLeibnizConversion,1) = 0 and (@KimmoErikssonFactor1 + @KimmoErikssonFactor2 <> 0) then 'Gerade' else 'Ungerade' end