Programmierung in Ruby

Der Leitfaden der Pragmatischen Programmierer

class Fixnum
Parent: Integer
Version: 1.6

Index:

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


Eine Fixnum enthält Integer Werte, die in einem Maschinenwort abgebildet werden können (weniger 1 Bit). Falls eine Operation auf Fixnum diesen Zahlenraum überschreitet, wird der WErt automatisch in eine Bignum konvertiert.

Fixnum Objekte haben unmittelbaren Wert, d.h. wenn sie zugewiesen oder als Parameter übergeben werden, wird das Objekt selbst übergeben und nicht eine Referenz auf dieses Objekt. Zuweisungen "aliasen" Fixnum Objekte also nicht. Tatsächlich gibt nur eine Fixnum- Objektinstanz für einen gegebenen Ganzzahlwert. Folglich können z.B. Singleton-Methoden nicht auf eine Fixnum addiert werden.

instance methods
Arithmetic operations

Führt verschiedene arithmetische Operationen auf fix aus.

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

Bit operations

Führt verschiedene Operationen auf der Binärdarstellung von Fixnum durch.

~ fix Bitinvertierung
fix | eineZahl Bitweises ODER
fix & eineZahl Bitweises AND
fix ^ eineZahl Bitweises EXCLUSIVES ODER
fix << eineZahl Linksseitige Verschiebung um eineZahl Bits
fix >> eineZahl Rechtsseitige Verschiebung um eineZahl Bits (mit Vorzeichenerweiterung)

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

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

[ ] fix[ n ] -> 0, 1

Bit Referenz---Gibt das nte Bit aus der Binärdarstellung von fix zurück. Dabei ist fix[0] das geringst signifikante Bit.

a = 0b11001100101010
30.downto(0) do |n| print a[n] end
produces:
0000000000000000011001100101010

id2name fix.id2name -> einString oder nil

Gibt den Namen des Objekts zurück, dessen Symbol id dem Wert von fix entspricht. Falls in der Symboltabelle kein Symbol mit diesem Wert abgelegt ist, wird nil zurückgegeben. id2name hat nichts mit der Object.id-Methode zu tun. Siehe auch String#intern später in diesem Abschnitt sowie die Klasse Symbol.

symbol = :@inst_var » :@inst_var
id     = symbol.to_i » 8978
id.id2name » "@inst_var"

size fix.size -> eineFixnum

Gibt die Anzahl der Bytes zurück, die Fixnum in der Maschinendarstellung benötigt.

to_f fix.to_f -> eineGleitkommazahl

Konvertiert fix in eine Gleitkommazahl.

to_i fix.to_i -> fix

Gibt fix zurück.

to_s fix.to_s -> einString

Gibt eine String mit der Dezimaldarstellung von self 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".