Prüfen ob eine Zahl ein Integer ist
Übersicht

![]() |
M0rgensternBetreff: Prüfen ob eine Zahl ein Integer ist |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Mir ist die Tage die Idee für ein kleines Programm gekommen, an das ich mich gleich mal setzen wollte. Leider bin ich auf ein kleines Problem gestoßen: Wenn man einen Integer durch einen Integer teilt, ist es dann möglich, herauszufinden, ob das Ergebnis glatt geteilt ist oder ob es gerundet werden musste um wieder ein Integer zu sein? Also, ich möchte von dem Programm wissen, ob die Rechnung 15/3 glatt aufging oder nicht (ja ich weiß, das tut sie) bzw ich möchte wissen, ob bei der Rechnung 15/2 ein glattes Ergebnis oder eben 7,5 rauskommt, da der PC das nur als 8 ausgibt. Wäre super, wenn man das irgendwie überprüfen könnte und mir da einer weiterhelfen könnte. Lg, M0rgenstern |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mod![]() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh man.
Das ist jetzt schon dämlich. Dankeschön, daran hab ich gar nicht gedacht. Vielen Danke. Lg, M0rgenstern |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei Mathe-Lern-Programmen kann man auch den anderen Weg gehen.
Man würfelt sich zwei Faktoren aus x und y, berechnet das Ergebnis e = x * y, und stellt die Aufgabe e / y = ? So ist sichergestellt, dass die Aufgabe glatt aufgeht. Vielleicht lässt sich das ja auf dein Problem übertragen. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, lässt es sich nicht, aber vielen Dank.
Das wäre nämlich viel zu kompliziert für das was ich probiere. Ich wollte nämlich mal ausprobieren bis wie viele Stellen ich Primzahlen errechnen kann und wie lange das entsprechend dauert. Btw: Wie groß darf ein Integer Array sein? Lg, M0rgenstern |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mehr als 1GB wird keinem Programm zugestanden (man korrigiere mich wenn nötig, vll. auch 2GB), aber das wär' kein Grund es aus zu reizen... Wenn es nur darum geht eine Primzahlenliste zu generieren, würd' ich vorschlagen, gleich in eine Textdatei zu schreiben. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm.
Stimmt. Das wäre die bessere Idee. Okay, dann was anderes. Wie groß darf ein INteger werden? 100 leider auf keinen Fall. Btw, gibts ne Möglichkeit, mit größeren Zahlen zu rechnen als ein Integer erlaubt? Lg, M0rgenstern |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Integer hat 32 Bit, einer geht für das Vorzeichen drauf, also max +(2^31)-1.
Mit Long hast du 64 Bit, also max +(2^63)-1. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Long?
Die gehen von -2^63 bis +2^63-1. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey vielen Dank.
Long hilft schon weiter.... Aber, wenn ich noch größere Zahlen haben will.... geht das? Lg, M0rgenstern EDIT: 2^63? Das wären 9223372036854775808 Aber irgendwie lande ich im negativen^^ Hab ich euch falsch verstanden? Lg, m0rgenstern |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar doch. Das Maximum ist 2^63-1. Trotzdem bekomme ich mit dem ^-Operator einen negativen Wert - woran das liegt weiß ich nicht, aber ich habe das so getestet:
BlitzMax: [AUSKLAPPEN] Local i:Long=pow(2,63)-1 Größere Zahlen bekommst du afaik am einfachsten mit einem Stringrechner. Das wird allerdings schon sehr langsam. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Interessant. In einer Rutsch geht's nicht, aber in zwei Schritten schon.
BlitzMax: [AUSKLAPPEN] Local j:Long = (2 ^ 63) ; j:-1 |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es reicht auch nach dem Potenzieren explizit nach Long zu casten:
BlitzMax: [AUSKLAPPEN] Global i:Long=Long(2^63)-1 Der ^-Operator arbeitet anscheinend unter BlitzMax (bei Ganzzahlen) nur mit 32-Bit-Werten: Code: [AUSKLAPPEN] ;Assemblercode der aus der Global-Deklaration generiert wurde:
_bb_i: dd 0,-2147483648 Das ist eine falsche Zahl: (-2147483648 << 32)+0 = -9223372036854775808 mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group