Hallo ,
Ich wünsche euch ein frohes neues Jahr
Beim Erarbeiten des Quellcodes der Random Klasse fiel mir dieser Codebereich auf:
http://www.docjar.com/html/api/java/util/Random.java.html
Warum wird hier gefragt, ob eine bitweise UND Verknüpfung dem normalen Wert entspricht?
zB: 10 im 2-System: 1010
minus 10 => 11 ?! [ Erst invertieren und dann 1 dazu addieren ?! ]
1010 & 11 =>00010 = 10 = 2
Ich wünsche euch ein frohes neues Jahr
Beim Erarbeiten des Quellcodes der Random Klasse fiel mir dieser Codebereich auf:
http://www.docjar.com/html/api/java/util/Random.java.html
Code:
public int nextInt(int n) {
if ( n>0) {
if(n & -n) == n) {
return (int) ((n * (long) next(31)) >> 31);
...
Warum wird hier gefragt, ob eine bitweise UND Verknüpfung dem normalen Wert entspricht?
zB: 10 im 2-System: 1010
minus 10 => 11 ?! [ Erst invertieren und dann 1 dazu addieren ?! ]
1010 & 11 =>00010 = 10 = 2