Integer zu klein

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

AMY

Betreff: Integer zu klein

BeitragSa, Jun 10, 2006 12:06
Antworten mit Zitat
Benutzer-Profile anzeigen
wie kann man eigentlcih mit zahlen rechnen die grösser sind als integer es erlaubt. Muss man sich adfür Funktionrn schreiben, oder gibt es noch einen anderen weg?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

Bud

BeitragSa, Jun 10, 2006 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Floats können mehr Daten speichern, sie haben ein Minimum von 1.17549e-38
und ein Maximum 3.40282e+38, sind aber bei berechnung langsamer als Integer.
Sag mal, wofür brauchst du so große Zahlen xD
  • Zuletzt bearbeitet von Bud am Sa, Jun 10, 2006 12:17, insgesamt einmal bearbeitet

AMY

BeitragSa, Jun 10, 2006 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
will möglichkeiten berechnungen durchführen und bei floats ist dabei das problem das dieses e+38 mit nullen und dan 38 angehangen wird, ist also ungenau.
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

PowerProgrammer

BeitragSa, Jun 10, 2006 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte, Floats können genauso viel speichern, die haben doch auch 4 Bytes, genau wie Ints Question Question Question


Wenn man größere Zahlen benötigt, müsste man am Besten mehrere Variablen kombinieren. So, das eine Variable den Low-Teil ausmacht, und die andere, den High-teil.
Ich glaube, das kann man aber kaum effektiv umsetzen...

AMY

BeitragSa, Jun 10, 2006 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
dann müsste ich aber ganz schön viele variablen kombinieren, denn ich muss hierbei mit dieser zahl rechnen 9^81 kionnte mir bisher nur ein rechner die ganze zahl anzeigen. der von windows powertoys. der kann mit 512 stellen rechnen.
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

PowerProgrammer

BeitragSa, Jun 10, 2006 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, soetwas ginge mit Assembler. Da kombiniert man dauernd irgendwelche Register...

Aber sowas mit BB??? Ich glaube nicht.


Ich denke, da kommst du nicht um eine außer-BB-liche Lösung herum!

AMY

BeitragSa, Jun 10, 2006 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
was war noch mal ein assembler? der compilöiert doch nur ein programm oder egal in welcher sprache?
welche außer bb-liche lösungen stehen denn zur verfügung? kann keine anderen programmier sprachen. kann man mit bb auf tasks zugreifen? wenn dann könnte man ja vielleicht auf den powertoy rechner zugreigen und ihn über bb steuern. kennt sich da jemand aus?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

PowerProgrammer

BeitragSa, Jun 10, 2006 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Assembler ist die Maschinensprache. Man gibt direkt Prozessorbefehle ein, die kurze Befehle sind. Bei höheren Programmiersprachen (BB etc.) bestehen die Funktionen aus Maschinencodezusammenstellungen, in denen gaaaanz viele Maschinenbefehle zusammengefaßt sind.

Naja, ist vielleich etwas blöd erklärt...

BladeRunner

Moderator

BeitragSa, Jun 10, 2006 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gab schon öfter mal dieAnfrage nach Programmen die mit größeren Zahlen rechnen. Machbar ist das durchaus, und es kann auch sein dass per Forensuche was zu finden ist (Ich erinnere mich düster dran das Rallimen mal was erstellt hatte...).

@Powerprogrammer: Floats haben auch nur 4 byte, stimmt. Aber da sie per Mantisse speichern ist ihr Gültigkeitsbereich wesentlich größer. Der Nachteil ist, wie schon beschrieben, dass sie große Zahlen nur sehr ungenau wiedergeben können.

EDIT:
https://www.blitzforum.de/foru...156#149156
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

AMY

BeitragSa, Jun 10, 2006 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
das heisst ich könnte mit einem assembler direkt prozessor befehle nehmen und berechnen lassen und sie dann wieder in einem textstring speichern?
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

BladeRunner

Moderator

BeitragSa, Jun 10, 2006 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinen ?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

AMY

BeitragSa, Jun 10, 2006 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
wie schon gesagt ich muss 9^81=196627050475552913618075908526912116283103450944214766927315415537966391196809
rechnen und dieses ergebnis benötige ich für eine schleife die später kommt
dann muss ich es sogar nochmal mit 81 multiplizieren
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!

BladeRunner

Moderator

BeitragSa, Jun 10, 2006 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
siehe den link oben. die zahl muss als string vorliegen, und das ergebnis ist auch ein string. Du musst eben alle berechnungen die damit zu tun haben auf Strings umstellen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Triton

BeitragSo, Jun 11, 2006 0:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Joa, Rallimen hat mal sowas geschrieben.

Wie auch immer, ich selbst schreibe auch schon an sowas und versuche es noch schneller zu machen, was mir bisher bei den meisten Funktionen auch gelang (Potenzen kann ich z.B ungleich schneller ermitteln Smile).
Trotzdem habe ich noch einige (wirklich hartnäckige user posted image) Fehler, weshalb ich es noch nicht veröffentlicht habe.

Potenzen wie 9^81 sind da noch ein Kinderspiel.

Theoretisch kann man damit Zahlen bis 10^2^31 verarbeiten (also eine Zahl mit 2^31 Stellen), auch wenn jede Rechenoperation bei sowas ganz schön lange dauern würde..
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Der Wanderer

BeitragDi, Jun 13, 2006 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich kann man sowas in Basic implementieren.
Wer es in Basic nicht hinbekommt, sollte Assembler erst gar nicht versuchen!

Wir alle Erinnern uns an die Grundschule, wo man längere Dezimalzahlen multipliziert und addiert hat. (oder war es Anfang Gymnasium ?)
Genauso kann man es auch implementieren, also schön Stelle für Stelle mit Übertrag, und das ganze als eine Zeichenkette speichern und abarbeiten.
Ist nicht besonders effizient, aber für 9 hoch 81 sollte es reichen.

Oder kommt es auf Geschwindigkeit an ?

Ich hoffe, das soll nicht die Anzahl der Schleifendurchläufe werden Wink

DerHase

BeitragDi, Jun 13, 2006 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Huch ich hab vergessen zu posten was ich neulich nachts kurz gecodet hab. Es ist nicht die Lösung Deines Problems, aber es zeigt Dir vielleicht wie Du eine Zahl in mehreren Variablen speichern kannst.
Here we go:
Code: [AUSKLAPPEN]

Graphics 640,480,0,2

Global fntArial=LoadFont("Arial",24,False,False,False)
SetFont fntArial
Color 0,255,0

Global a = 0
Global b = 0
Global c = 0

While Not KeyHit(1)

   a = a + 1
   
   If a = 100000
      a = 0
      b = b + 1
   End If
   
   If b = 100000
      b = 0
      c = c + 1
   End If
   
   If c = 100000
      c = 0
   End If
   
   ;Dieser Teil ist von Tobi, er dient dazu, dass die Nullen einer Zahl mit angezeigt werden
   atxt$ = Replace$(RSet$(Str$(a), 5), " ", "0")
   btxt$ = Replace$(RSet$(Str$(b), 5), " ", "0")
   ctxt$ = Replace$(RSet$(Str$(c), 5), " ", "0")
   
   Text 130,10,atxt
   Text 70,10,btxt
   Text 10,10,ctxt

   Flip 0:Cls

Wend


Ausserdem könnte Dir dieser Thread weiter helfen. Da hab ich irgendwo nen Code reingeschrieben, dieser ist eigentlich ein Dual-System zähler, also 0 und 1. Dieses Beispiel könnte ne Zahl von 2^2500 darstellen, aber es lässt sich nach belieben erweitern, schau es Dir mal an, vielleicht kriegst Du ne Idee für Dein Problem!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group