Programmierung in Ruby

Der Leitfaden der Pragmatischen Programmierer

class Bignum
Parent: Integer
Version: 1.6

Index:

Arithmetic operations Bit operations <=> [ ] size to_f to_i to_s


Bignum-Objekte enthalten ganze Zahlen ausserhalb des Zahlenraums von Fixnum. Bignum-Objekte werden automatisch erstellt, wenn Ganzzahl-Operationen über die Grenzen einer Fixnum hinaus führen. Das Ergebnis einer Rechnung, die auf einem Bignum-Wert operiert, jedoch in einen Fixnum passt, wird ebenfalls automatisch konvertiert.

Für Bit-Operationen sowie [], wird ein Bignum-Wert wie ein unendlich langer Bitstring mit der Komplementärdarstellung von 2 abgebildet.

Während Fixnum-Werte unmittelbar wirken, tun dies Bignum-Objekte nicht--- Zuweisungsoperationen und Parameterübergabe erfolgt über eine Referenz auf Objekte und nicht über die Objekte selbst.

instance methods
Arithmetic operations

Arithmetische Operationen auf big.

big + eineZahl Addition
big -- eineZahl Subtraktion
big * eineZahl Multiplikation
big / einZahl Division
big % eineZahl Modulo
big ** eineZahl Potenzierung

Bit operations

Operationen auf der Binärdarstellung von Bignum

~ big Invertiert Bits
big | eineZahl Bit-weises OR
big & eineZahl Bit-weises AND
big ^ eineZahl Bit-weises EXCLUSIVE OR
big << eineZahl Links-shift um eineZahl Bits
big >> eineZahl Rechts-shift um eineZahl Bits (mit Vorzeichen-extension)

<=> big <=> eineZahl-> -1, 0, +1

Vergleich---Gibt abhängig davon, ob big größer, gleich oder kleiner als eineZahl ist, -1, 0, or +1 zurück. Dies ist die Basis für die Tests in Comparable.

[ ] big[ n ] -> 0, 1

Bit Referenz---Gibt das nte Bit der (vermuteten) Binärdarstellung von big zurück, wobei big[0] das geringst-signifikante Bit darstellt.

a = 9**15
50.downto(0) do |n|
  print a[n]
end
produces:
000101110110100000111000011110010100111100010111001

size big.size -> einInteger

Gibt die Zahl der Bytes in der Maschinen-Darsatellung von big zurück.

(256**10 - 1).size » 12
(256**20 - 1).size » 20
(256**40 - 1).size » 40

to_f big.to_f -> eineGleitzahl

Konvertiert big in ein Float. Wenn big nicht in den Zahlenraum von Float passt, wird Unendlich zurückgegeben.

to_i big.to_i -> big

Gibt big zurück.

to_s big.to_s -> einString

Gibt einen String mit der Dezimaldarstellung von big zurück.


Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Übersetzung: Carsten Schinzer
Für das englische Original:
© 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0. That reference is available for download.
Diese Lizenz sowie das Original vom Herbst 2001 bilden die Grundlage der Übersetzung
Es wird darauf hingewiesen, dass sich die Lizenz des englischen Originals inzwischen geändert hat.
Für die deutsche Übersetzung:
© 2002 Jürgen Katins
Der Copyright-Eigner stellt folgende Lizenzen zur Verfügung:
Nicht-freie Lizenz:
This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.
Freie Lizenz:
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".