Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen

Pflaumi123

Mitglied
Hallo zusammen,

für mich ist Java zur Zeit noch völliges Neuland. Deshalb bin ich gerade etwas am rumprobieren.
Nun habe ich 3 Variable vom Typ int. Wenn ich nun 2 ziemlich große positive Zahlen multipliziere, bekomme ich ein negatives Ergebnis. Es hat sicherlich etwas damit zu tun, dass das Ergebnis über den Bereich des Integer hinausgeht. Aber das erklärt mir nicht warum etwas negatives bei rauskommt. :bahnhof: Hat jemand eine Idee?

hier mein Quelltext:


Java:
 import javapack.Einlesen;
public class Uebung3A2 {

	public static void main(String[] args) {
		
		int a,b,c;
		
		a = Einlesen.LiesInt("ganze Zahl ");
		b = Einlesen.LiesInt("Ganze Zahl ");
System.out.print( "a * b = " + (a * b) + );
	}
}

mit zwei großen Zahlen spuckt er mir dann das aus:

Java:
ganze Zahl 2000000
Ganze Zahl 150000
a * b = -647710720

Danke für eure antworten :)
 

Thallius

Top Contributor
Dazu müsstest du dich damit beschäftigen wie ein Computer überhaupt Zahlen speichert. Das kann er nämlich nur mit Zahlen im binären Zahlensystem, da ein Computer nur zwei Zustände kennt: Strom liegt an (1) oder kein Strom liegt an (0).

Wenn du nun z.B. 3 bit nimmst, dann kann ich damit folgende Zahlen im binärsystem darstellen:

000
001
010
011
100
101
110
111

Würde man diese als vorzeichenlos Zahl ins Dezimalsystem übersetzen würde man folgende Werte erhalten

000 - 0
001 - 1
010 - 2
011 - 3
100 - 4
101 - 5
110 - 6
111 - 7

Man könnte mit einer 3 bit Variablen also die Zahlen 0-7 darstellen.

Was aber tun wenn man negative Zahlen darstellen will? In dem Fall wird einfach binär von 0 rückwärts gezählt. Also

000 - 0
111 - -1
110 - -2
101 - -3
100 - -4

Die nächste binär Zahl wäre jetzt 011, diese ist nicht mehrvnegativ, da das höchste bit nicht gesetzt ist.

Das bedeutet

011 - 3
010 - 2
091 - 1

Wir können mit drei bit also die Zahlen -4 bis 3 darstellen. Der Trick dabei ist, dass der Computer gar nicht weiß ob es sich um vorzeichenbehaftete oder vorzeichenlose Zahlen handelt. Er behandelt diese einfach vollkommen gleich.

Würde ich nun zwei 3 bit Zahlen addieren (oder multiplizieren das ist dann ja egal) die den Wertebereich der 3 bit sprengt, also z.b.

3+2

011 + 010

So ergibt das für den Computer

101

Also binär gesehen 5, da wir es aber vorzeichenbehaftet betrachten ist das -3.

Gruß

Claus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
J Negatives Quadrat bei hohen Basen Java Basics - Anfänger-Themen 11
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
Asura Falsches Ergebnis aufgrund der Nachkommastelle Java Basics - Anfänger-Themen 6
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
J warum ist das ergebnis 45? Java Basics - Anfänger-Themen 5
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
V Operatoren Warum kommt nicht das gewünschte Ergebnis dieser Operation? Java Basics - Anfänger-Themen 3
E Bruch erstellen - Von Int zu Double Ergebnis Java Basics - Anfänger-Themen 24
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
J Kosinussatz liefert falschs Ergebnis Java Basics - Anfänger-Themen 2
J Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
J Ergebnis immer 0 Java Basics - Anfänger-Themen 8
P ergebnis einer schleife wiedergeben Java Basics - Anfänger-Themen 8
Anfänger2011 Frame zeigt nicht gewünschtes Ergebnis an ... Java Basics - Anfänger-Themen 5
AssELAss Datentypen BigDecimal Vergleichen ob Ergebnis >= 200 Java Basics - Anfänger-Themen 5
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
U ArrayList.get() liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
T Methoden Quadratwurzel - Kriterium für genaues Ergebnis Java Basics - Anfänger-Themen 2
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
X Ergebnis speichern! Java Basics - Anfänger-Themen 1
J Ergebnis wird gespammt sowie eine else if Frage Java Basics - Anfänger-Themen 2
W Methoden While Schleifen Ergebnis im String speichern Java Basics - Anfänger-Themen 5
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 2
L Schleifen ergebnis zusammenfassen Java Basics - Anfänger-Themen 9
M Hilfe JTextfield Ergebnis Java Basics - Anfänger-Themen 2
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
P Kontrollstrukturen Ergebnis gesucht Java Basics - Anfänger-Themen 10
W nicht richtiges Ergebnis /Kreditberechnung Java Basics - Anfänger-Themen 5
O Werte aus ArrayList multiplizieren und dann Ergebnis addieren Java Basics - Anfänger-Themen 3
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
B Erste Schritte ergebnis der funktion in der main-methode ausgeben Java Basics - Anfänger-Themen 7
P for Schleife, gleiches ergebnis mit und ohne {} Java Basics - Anfänger-Themen 13
R ArrayList.add() führt nicht zu gewünschtem Ergebnis Java Basics - Anfänger-Themen 2
P Ergebnis sollte double sein ... Java Basics - Anfänger-Themen 5
S Datei einlesen und Ergebnis wieder in Datei schreiben Java Basics - Anfänger-Themen 5
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
K OOP Wertebereich Ergebnis von % Operator Java Basics - Anfänger-Themen 8
M sonderbares ergebnis Java Basics - Anfänger-Themen 3
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
M Normale Rechnung - komisches Ergebnis. Java Basics - Anfänger-Themen 10
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
T Methoden Testen und schaun ob richtiges Ergebnis? Java Basics - Anfänger-Themen 5
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
B Wiese wird das Ergebnis nicht gekürzt? Java Basics - Anfänger-Themen 11
G Datentypen char to int casten - falsches Ergebnis! Java Basics - Anfänger-Themen 6
F Mit Ergebnis weiterrechnen - Zinseszinsrechnung Java Basics - Anfänger-Themen 3
neurox Ergebnis der if-Bedingung weiter verwenden Java Basics - Anfänger-Themen 5
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
D JSP include wie bei php? (inhalt statt ergebnis einfügen)) Java Basics - Anfänger-Themen 24
S main-Methode gibt unerwartetes Ergebnis aus Java Basics - Anfänger-Themen 4
-horn- Prozentstatus bei gradem Ergebnis von x/y für 0,10,20.100% Java Basics - Anfänger-Themen 3
G Falsches Ergebnis Java Basics - Anfänger-Themen 3
cowabunga1984 Ergebnis mit Threads berechnen und per return zurückgeben? Java Basics - Anfänger-Themen 3
S atan liefert falsches Ergebnis Java Basics - Anfänger-Themen 6
-horn- Variable von PHP an Java übergeben und Ergebnis zurückgeben? Java Basics - Anfänger-Themen 10
D Ausgabe gibt falsches Ergebnis Java Basics - Anfänger-Themen 2
G Multiplikation falsches Ergebnis Java Basics - Anfänger-Themen 5
C if anweisung, falsches Ergebnis Java Basics - Anfänger-Themen 4
B Zwei int Werte dividieren - Ergebnis Double Java Basics - Anfänger-Themen 15
G divisions ergebnis runden Java Basics - Anfänger-Themen 3
G Einfache Berechnung liefert falsches Ergebnis Java Basics - Anfänger-Themen 2
M Mouse Listener liefert das ergebnis 2 mal! Java Basics - Anfänger-Themen 2
B equals() der Klasse Objects liefert unerwartetes Ergebnis Java Basics - Anfänger-Themen 17
1 Ergebnis in ein Jlabel bringen Java Basics - Anfänger-Themen 3
G Ergebnis nicht nachvollziehen? Java Basics - Anfänger-Themen 6
C Wie erhalte ich nur ganze Zahlen als Ergebnis einer Division Java Basics - Anfänger-Themen 4
S Eingelesenes Array in JTable bringt kein Ergebnis Java Basics - Anfänger-Themen 8
G komisches Ergebnis beim Addieren von doubles Java Basics - Anfänger-Themen 2
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
J Funktionsaufrufe Multiplikation von Arrays Java Basics - Anfänger-Themen 3
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
TomatenBrot447 Adapter für eine optimierte Multiplikation Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben