Testen von geraden Zahlen in Java ohne modulo-Operator

8

Wie würde ich das in Java machen? Finden Sie heraus, ob eine Zahl durch 2 teilbar ist, wenn die letzte Ziffer gerade ist. (0,2,4,6,8) Beispiel: 128 ist, 129 ist nicht

    
JavaNewGirl 08.12.2012, 21:17
quelle

7 Antworten

14

Verwenden Sie die bitweise Operation and

%Vor%

Bitweiser UND-Operator & amp;

  

Der & amp; (bitweiser UND) Operator vergleicht jedes Bit seines ersten Operanden mit   das entsprechende Bit des zweiten Operanden. Wenn beide Bits 1 sind,   Entsprechendes Bit des Ergebnisses wird auf 1 gesetzt. Andernfalls setzt es das   entsprechendes Ergebnisbit auf 0 ( Quelle ).

Im binären -Format ist bei geraden Zahlen das niedrigstwertige Bit gleich null . dies zu wissen und die & amp; Bediener können Sie herausfinden, ob es gerade ist oder nicht.

Es braucht also eine Zahl ..abcdy und vergleicht mit ..00001, wenn y null ist ..abcdy & amp; ..00001 ist auch Null, also eine gerade Zahl.

    
dreamcrash 08.12.2012 21:22
quelle
5

Sehen Sie, ob das rechte Bit 1 ist und nicht, indem Sie bitweise Operatoren verwenden

führen Sie logische und mit (zum Beispiel)

%Vor%     
Jigar Joshi 08.12.2012 21:20
quelle
5

Überprüfen Sie das niedrigstwertige Bit:

%Vor%

LSB ist 0 für gerade Zahl und 1 für ungerade, genauso wie für Dezimalzahlen am wenigsten signifikante Stelle ist 0 , wenn es durch 10 teilbar ist.

    
Tomasz Nurkiewicz 08.12.2012 21:21
quelle
0

Myway;)

öffentliche Klasse Even_Odd {

%Vor%

}

    
user3128699 23.12.2013 06:44
quelle
0
%Vor%

Grund: Nummer ist ungerade, wenn das LSB 1 ist, und auch sonst. Wenn n | 1 erledigt ist, bleibt LSB von Odd gleich, so dass die resultierende Zahl nicht geändert wird, während LSB einer geraden Zahl zu 1 wird und somit die Zahl ändert.

    
prashant 23.12.2015 11:47
quelle
0

Teilen Sie die Zahl durch 2 und multiplizieren Sie die Antwort 2 . Wenn Sie Ihre ursprüngliche Zahl erhalten, lautet die Zahl "Even" dann ist die Nummer "Ungerade"

%Vor%     
user3128699 12.08.2016 06:11
quelle
0
%Vor%

}

    
Sachin Shah 14.01.2017 19:18
quelle