kills Geschrieben 18. Mai 2005 Geschrieben 18. Mai 2005 Hallo zusammen, ich hab hier eine Rundungsfunktion vorliegen, die ab und an ein Vorzeichen "umkehren" muss. Nun ist diese Variable im Typ BigDecimal (aus historischen Gründen). Jetzt will beim überarbeiten diese auf einen anderen Datentyp ändern. Nun steh ich vor der Frage welcher ist am besten? Die Variable kann nur den Wert 1 u. -1 annehmen. Gibts da was spezielles? (Java 1.3.1) Ich hätte jetzt nen int genommen... aber ist ja trotzdem noch überdimensioniert... Gibts nen signed bit o.ä.? Danke für alle Ideen, Gruß, Markus
Jaraz Geschrieben 18. Mai 2005 Geschrieben 18. Mai 2005 byte ist vom Speicherverbrauch der kleinste Datentyp: byte 8 Bit Gruß Jaraz
geloescht_Newlukai Geschrieben 18. Mai 2005 Geschrieben 18. Mai 2005 Die Variable kann nur den Wert 1 u. -1 annehmen. Ich hätte ja boolean vorgeschlagen, denn das paßt am besten um 2 Zustände darzustellen. Nur in Java ist bool genau wie byte 8bit lang. Von daher ist es wahrscheinlich bequemer einfach Jaraz' Vorschlag Folge zu leisten.
kills Geschrieben 18. Mai 2005 Autor Geschrieben 18. Mai 2005 Naja, ich wollte ja -1 und 1 darstellen und nicht 0 und eins... Damit kann man einfach das Vorzeichen einer Zahl ändern... Boolean hätte ich dann ja wieder pro verwendung eine If-Case mehr drinne.... Gruß, Markus
perdian Geschrieben 18. Mai 2005 Geschrieben 18. Mai 2005 Ich hätte jetzt nen int genommen... aber ist ja trotzdem noch überdimensioniert... [...] Boolean hätte ich dann ja wieder pro verwendung eine If-Case mehr drinneKann es sein, dass du ein bisschen viel an den falschen Stellen optimieren möchtest?
kills Geschrieben 18. Mai 2005 Autor Geschrieben 18. Mai 2005 Kann es sein, dass du ein bisschen viel an den falschen Stellen optimieren möchtest? Naja schlecht ausgedrückt vielleicht... Es geht ums handling mit int int i = 1; if( a == 25) 7 i = -1; } return c*i; mit boolean boolean i = true; if( a == 25) 7 i = false; } if ( i) 7 return c; } else { return c*-1; }
geloescht_Newlukai Geschrieben 19. Mai 2005 Geschrieben 19. Mai 2005 Naja schlecht ausgedrückt vielleicht... Es geht ums handling mit int int i = 1; if( a == 25) 7 i = -1; } return c*i; mit boolean boolean i = true; if( a == 25) 7 i = false; } if ( i) 7 return c; } else { return c*-1; } Java erlaubt auch i ? return c : return c*(-1); Aber abgesehen davon gibst Du ja schonmal c zurück. Dank der Typwandlung von Java würde es Dir also absolut nichts bringen, einen Datentyp zu nehmen, der kleiner als Deine Rückgabe ist. Das ist wohl auch das, was perdi andeuten wollte. 1970 hätte Dir die Unterscheidung innerhalb der Methode wohl noch 'nen Performance-Schwung gebracht. Heute ist es aber wohl egal, ob Du temporär eine Variable mit 8 oder 16 oder auch 32 bit hast, um eine Vorzeichenumkehrung zu realisieren.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden