####################################################################### >>>NICHT<<< GANZZAHLIGE Langzahlrechnung siehe Datei http://www.rendar.de/excel/langezahlen/liesmich_lr.txt ####################################################################### in diesem Text folgt nun alles uber die alte Ganzzahlversion! jetzt auch mit Add-In! (siehe Punkt 5) (1) FUNKTIONEN ============== x und y seien ganzzahlig und positiv oder negativ Funktion ------> berechnet lz_p(x;y) x+y lz_m(x;y) x-y lz_mult(x;y) x*y lz_multi(x;y) x*y (nur bei großen y ein wenig schneller als lz_mult) lz_div(x;y) x\y lz_div(x;y;1) ((x/y) - (x\y))*y (Rest der ganzzahligen Division x durch y) die globale Variable x_div enthält hierbei das Ergebnis der ganzzahligen Division x\y large_DezHex(x) berechnet für eine beliebig lange Dezimalzahl x die zugehörige Hexadezimalzahl large_DezBin(x) dezimal in binär (nutzt intern large_DezHex) large_DezBin2(x) dezimal in binär (nutzt intern large_DezOct) large_DezOct(x) dezimal in oktal large_BinDez(x) binär in dezimal large_OctDez(x) oktal in dezimal large_HexDez(x) hexal in dezimal large_DezIn(x,b) wandelt eine Dezimalzahl in eine Zahl zur Basis b large_InDez(x,b) wandelt eine Zahl zur Basis b zurück in eine Dezimalzahl die letzten beiden Funktionen benötigen einen GENÜGEND LANGEN String mit den gewünschten Umwandlungszeichen in der gültigen Reihenfolge z.B. Basis b<=16 benötigt z.B. normalerweise den uw_string (globale Variable) "0123456789ABCDEF". Einzige Bedingung für diesen String ist, daß len(uw_string)>= b ist. Welche Zeichen darin verwendet werden und in welcher Reihenfolge, kann jeder selbst bestimmen - einfach die Variable uw_string ändern oder die zugehörige Textbox im Umwandlungsformular. (2) KONTAKT =========== Code-/Programmfehler/Verbesserungsvorschläge bitte per email an: mailto:Wolf.W.Radzinski@onlinehome.de subject/Betreff: Langzahlrechnung in Excel Bitte keine XLS Dateien (zu groß!), sondern lieber Code etc. per TXT-File! (3) ERWEITERUNGEN ================= Tausendertrennung: ------------------ Wer Lust hat, kann versuchen die Funktionen "tausendertrennungstauglich" zu machen. Sollte sich einer daran wagen, möchte ich bitten, mir den Code per TXT-File zukommen zu lassen. TIA! Kommazahlen: ------------ Wer Lust hat, kann versuchen die Funktionen auf Kommazahlen zu erweitern. Sollte sich einer daran wagen, möchte ich bitten, mir den Code per TXT-File zukommen zu lassen. TIA! Info: wie wird in den obigen Funktionen gerechnet? lz_p ... einfache stellenweise Addition mit Übertrag lz_m ... Subtraktion durch "Addition des 9er Komplements" z.B. 25-813 = 025+[186] = [211] = -788 813-25 = 813+[974] = 1[787]= 787+1 = 788 lz_mult ... benutzt die Additionsfunktion lz_p zur Berechnung lz_div ... benutzt die Subtraktionsfunktion lz_m d.h. eigentlich werden alle 4 Grundrechenarten mit der einfachen Additionfunktion lz_p berechnet. (4) CODE ======== findest du unter: http://www.rendar.de/excel/langezahlen/langzahl.txt.pgp (nur mit Passwort) (5) ADD-IN ========== alle Langzahlfunktionen und ein Formular zur Umrechnung zw. Binär - Octal - Dezimal - Hexadezimal sowie ein weiteres Formular zur Langzahlrechnung findest du unter http://www.rendar.de/excel/langezahlen/basis_umwandlungen.xla bzw (geZIPt) http://www.rendar.de/excel/langezahlen/basis_umwandlungen.xla.zip >>> NEU mit UPN (Userform) Rechner ################################## http://www.rendar.de/excel/langezahlen/lz_upn_bu.xla.zip ################################## i) "VORSICHT" die Umwandlung SEHR LANGER Zahlen kann ziemlich viel ZEIT kosten! Theoretisch bricht die Umwandlung erst ab der maximal zulässingen Stringlänge in Excel 97 ab, dies hab ich allerdings "aus verständlichen Gründen" nicht getestet (max. 5 1/2 Zeilen Binärzahl) Die Label's neben den Textboxen dienen dem Datenaustausch zwischen Textbox und AKTIVER ZELLE [BIN|OCT|DEZ|HEX]: schreibe den Inhalt der Textbox in die aktive Zelle [>>>]: kopiere den Inhalt der aktiven Zelle in die Textbox ii) das UPN Berechnungsformular wird eigentlich nicht benötigt, da man die Funktionen auch in Zellen direkt anwenden kann. X kann entweder Zahlen(strings) enthalten oder Zellbezüge in der Form $A$1 Das "UPN" Formular funktioniert (ungefähr) wie ein HP Taschenrechner (Umgekehrt Polnische Notation) Bsp: 1) man gibt eine Zahl in X ein z.B. 11 2) man betätigt die ENTER Taste a) damit wird der X,Y,Z Stack "nach oben" kopiert 3) man gibt eine weitere Zahl in X ein z.B. 4 4) jetzt betätigt man eine der Operationstasten +,-,*,/ a) z.B.: / dann wird eine "ganzzahlige Division durchgeführt X = Y Div X bzw. X = 11 Div 4 = 2 und der Rest der Division 3 wird in T abgelegt bzw angezeigt!