gcc
4.4 scheint zu sein, als sie int128_t
hinzugefügt haben und ich Bit Shifting verwenden muss und mir der Platz für ein paar Bitfelder ausgegangen ist.
Bearbeiten : Vielleicht liegt es daran, dass ich auf einem 32-Bit-Computer bin, es gibt keine Möglichkeit, ihn für einen 32-Bit-Computer (Intel Atom) zu haben, oder? Es wäre mir egal, ob es einen langwierigen Maschinencode erzeugt, wenn ich mit Bit Shifting wie erwartet arbeiten würde.
Sie könnten auch eine Bibliothek verwenden. Dies hätte den Vorteil, dass es portabel ist (in Bezug auf Plattform und Compiler) und Sie einfach auf noch größere Datentypen umsteigen können. Eine, die ich empfehlen kann, ist gmp (auch wenn es nicht beabsichtigt ist, die Bitbreite x zu handhaben, sondern so groß wie Sie wollen).
Die Bitverschiebung ist in jeder beliebigen Anzahl von Bits sehr einfach. Denken Sie daran, die übergelaufenen Bits zum nächsten Glied zu verschieben. Das ist alles
%Vor%Ähnlich für Shift rechts
%Vor%Sie könnten zwei 64-Bit-Ints verwenden, aber dann müssen Sie die Bits im Auge behalten, die sich zwischen den Bits bewegen.