Ich habe 2 große Zahlen, ein etwa 4096 Bits und die anderen 2048 Bits, in einer Struktur gespeichert:Kennt jemand einen besseren Weg für Modulo auf Bits?
typedef uint32_t word;
typedef struct BigNumber {
word words[128];
} BigNumber;
Ich habe die Modulo die, und nur so machen ich es tun denken kann, ist subtrahiert mehrere Mal, aber das braucht etwas Zeit.
Kennt jemand einen besseren Weg, dies zu tun?
modulus(m, n) {
if (m < n) return m
elif (m < (n<<1)) return m - n
else return modulus((modulus(m>>1, n)<<1 + m&1), n)
}
https://gmplib.org/ –
Leider kann ich MGP Bibliothek nicht, und ihr Code ist für mich nicht wirklich wiederverwendbar –
Geht es um beliebige Zahl Modulo oder ein Modul mit einer gewissen Leistung 2 Nummer (höher eingestellt Bits bis Null)? – grek40