{"id":3635,"date":"2017-02-20T13:38:19","date_gmt":"2017-02-20T11:38:19","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=3635"},"modified":"2017-02-20T13:38:19","modified_gmt":"2017-02-20T11:38:19","slug":"multiplizieren-von-int-ganzzahlen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2017\/02\/multiplizieren-von-int-ganzzahlen\/","title":{"rendered":"Multiplizieren von int-Ganzzahlen"},"content":{"rendered":"<p>Der *-Operator f\u00fchrt bei int keine Anpassung an den Datentypen durch, sodass die Multiplikation von zwei ints wiederum int liefert. Doch das Produkt kann schnell aus dem Wertebereich laufen, sodass es zum \u00dcberlauf kommt. Selbst wenn das Produkt in eine long-Variable geschrieben wird, erfolgt die Konvertierung von int in long erst nach der Multiplikation:<\/p>\n<pre>int \u00a0i = Integer.MAX_VALUE * Integer.MAX_VALUE;\n\nlong l = Integer.MAX_VALUE * Integer.MAX_VALUE;\n\nSystem.out.println( i );\u00a0 \u00a0\u00a0\u00a0\/\/ 1\n\nSystem.out.println( l );\u00a0\u00a0\u00a0\u00a0 \/\/ 1<\/pre>\n<p>Sollen zwei ints ohne \u00dcberlauf multipliziert werden, ist einer der beiden Faktoren auf long anzupassen, damit es zum korrekten Ergebnis 4611686014132420609 f\u00fchrt.<\/p>\n<pre>System.out.println( Integer.MAX_VALUE * (long) Integer.MAX_VALUE );\n\nSystem.out.println( (long) Integer.MAX_VALUE * Integer.MAX_VALUE );<\/pre>\n<p>Da diese Typanpassung schnell vergessen werden kann und nicht besonders explizit ist, bieten die Klassen Math und StrictMath die statische Methode long multiplyFull(int x, int y), die f\u00fcr uns \u00fcber (long)x * (long)y die Typumwandlung vornehmen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der *-Operator f\u00fchrt bei int keine Anpassung an den Datentypen durch, sodass die Multiplikation von zwei ints wiederum int liefert. Doch das Produkt kann schnell aus dem Wertebereich laufen, sodass es zum \u00dcberlauf kommt. Selbst wenn das Produkt in eine long-Variable geschrieben wird, erfolgt die Konvertierung von int in long erst nach der Multiplikation: int [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1,11,85],"tags":[],"class_list":["post-3635","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-insel","category-java-9"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3635","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=3635"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3635\/revisions"}],"predecessor-version":[{"id":3637,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3635\/revisions\/3637"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=3635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=3635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=3635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}