Gibt es eine Möglichkeit, 128-Bit-Ints auf gcc 4.4 zu tun

8

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.

    
Roman A. Taycher 07.04.2011, 05:02
quelle

4 Antworten

8

Ich bin mir ziemlich sicher, dass __int128_t auf früheren Versionen von gcc verfügbar ist. Nur überprüft auf 4.2.1 und FreeBSD und sizeof(__int128_t) ergibt 16.

    
janm 07.04.2011 05:41
quelle
4

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).

    
flolo 08.04.2011 07:29
quelle
2

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%     
Lưu Vĩnh Phúc 03.08.2013 00:49
quelle
1

Sie könnten zwei 64-Bit-Ints verwenden, aber dann müssen Sie die Bits im Auge behalten, die sich zwischen den Bits bewegen.

    
Andrew Cooper 07.04.2011 05:08
quelle

Tags und Links