Dass die 0 nicht dabei ist macht nix.
Ich sehe grad dass mein Code n Fehler hat.
1 | random ^= (random << 1) & (1UL << 1);
|
2 | random ^= (random << 2) & (1UL << 2);
|
3 | random ^= (random << 5) & (1UL << 5);
|
4 | random ^= (random << 8) & (1UL << 8);
|
da würde jede zeile bewirken, dass random komplett mit einer stelle
eines verschobenen random registers xor-verknüpft wird. ist irgendwie
schwachsinnig.
eigentlich wollte ich sowas in der art
1 | random ^= (random << (32 - 1)) & 1;
|
2 | random ^= (random << (32 - 2)) & 1;
|
3 | random ^= (random << (32 - 5)) & 1;
|
4 | random ^= (random << (32 - 8)) & 1;
|
damit werden allerdings immernoch alle ziffern xor-verknüpft.. wie mach
ich das, dass nur die erste xor-verknüpft wird? jedesmal noch ein |
random dazu?
1 | random ^= ((random << (32 - 1)) & 1) | (random & !(1));
|
2 | random ^= ((random << (32 - 2)) & 1) | (random & !(1));
|
3 | random ^= ((random << (32 - 5)) & 1) | (random & !(1));
|
4 | random ^= ((random << (32 - 8)) & 1) | (random & !(1));
|
Das sieht kompliziert aus