Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Wolli Buechel" Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_Fwd=3A_Codepage-Methode_vs=2E_UTF8?= Date: Sat, 17 Aug 2024 10:13:27 -0000 Lines: 152 Message-ID: <172388960725.28933.12839032272469976983@mail.python.org> References: <33D07169-A4D4-4CE9-822E-B0D81A823019@multi-matrix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de uZLaMnxga4JDk0P1A3s8NgTJruocvW4jztgVyFX1yLhQ== Cancel-Lock: sha1:7IbrIGB4PyXiNuq+Dd1Z6aK0dQ0= sha256:r3SticYOmL1JrGHPkaL6Qsxoch5S38QQ29m2hoELK/w= Authentication-Results: mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral In-Reply-To: <33D07169-A4D4-4CE9-822E-B0D81A823019@multi-matrix.de> User-Agent: HyperKitty on https://mail.python.org/ Message-ID-Hash: SUQLNOV5H6S6HJRVLUMI7IXFHWDWKDNA X-Message-ID-Hash: SUQLNOV5H6S6HJRVLUMI7IXFHWDWKDNA X-MailFrom: wjb131@web.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-python-de.python.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10b1 Precedence: list List-Id: Die Deutsche Python Mailingliste Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com de.comp.lang.python:6227 Hallo Herr Schnoor, > was Sie da aufzeigen, mag ja interessant sein, hat > aber mit den Ziffern nichts zu tun. > Für Ziffern gelten weder “Bits” noch ”Bytes”, > sondern ausschließlich die Position der Ziffer im String. > (Positionswert). Diese Bit- und Byte-Abstinenz besagter Index-Ziffern haben Sie danach in einer privaten Mail demonstriert anhand von 8 Exemplaren mit CPM-Output-Gedöns (leider wieder aus unbegreiflichen Gründen nicht in Worten begründet oder erläutert), und zwar so: =============== ZITAT-ANFANG ================ hier kommt meine Aufstellung der Ziffern: chose mode > S Basis: 4096 insert system number: E E result: 40 insert system number: 10 10 result: 4096 4 insert system number: 1E 1E result: 4136 4 Die Ziffer "1E" steht in der Position [4096 + 40 = 4136]. insert system number: 20 20 result: 8192 4 insert system number: 2E 2E result: 8232 4 Die Ziffer "2E" steht in der Position [8192 + 40 = 8232] insert system number: 30 30 result: 12288 5 insert system number: 3E 3E result: 12328 5 Die Ziffer "3E" steht in der Position [12288 + 40 = 12328] insert system number: EE EE result: 163880 6 insert system number: E0 E0 result: 163840 6 Die Ziffer "E0" steht in der Position [13880- 40 = 163840] insert system number: KK0 KK0 result: 771940352 9 insert system number: KKE KKE result: 771940392 Das sollte doch genügen. =============== ZITAT-ENDE ============= Da wird lediglich jede Indexzahl in eine äquivalente Dezimalzahl unmgewandelt. Dies zeigt auch der mir zugesandte Programmcode der Datei Zahlensysteme.py: ================================================================== elif modus == "S": # ----------------System -> Dezimal ----------------------- system = basis system = int(system) print() print() syszahl = input(" Eingabe System-Zahl: ") print("",syszahl) basis = system ergebnis = nachdez(basis,syszahl) ## Konvertierung der 4096-er Zahl in ein dezimales Äquivalent print(" Ergebnis: ",ergebnis) ergebnis = str(ergebnis) print(" ",len(ergebnis)) print() ======================================================== Diesen Code habe ich komprimiert und etwas erweitert, um zu zeigen, daß bei ALLEN beteiligten Variablen (index, syszahl, ergebnis) ÜBERRASCHENDERWEISE Bits und Bytes herauszukitzeln sind: ###################### from CPZiffernS import ziffern from tools24 import * basis = len(ziffern) print(len(ziffern) == len(set(ziffern))) print("Basis : %d" % basis) # modus == "S": # System -> Dezimal index = "E 10 1E 20 2E 30 3E EE E0 KK0 KKE".split() for idx in index: index10 = nachdez(basis, idx, ziffern) numZeichen = len(idx) numBytes = len(bytes(idx, 'utf8')) Bytes = [ f'{x:08b}' for x in bytes(idx, 'utf8') ] print("index : %9s\t(%d Zeichen ; %d Byte : %s)" % (idx, numZeichen, numBytes, Bytes)) print("index10 : %9s\t(%d Zeichen ; %d Byte)\n" % (index10, len(str(index10)), len(str(index10)))) ================================================================================== mit folgendem Ergebnis: Basis : 4096 index : E (1 Zeichen ; 1 Byte = ['01000101']) index10 : 40 (2 Zeichen ; 2 Byte) index : 10 (2 Zeichen ; 2 Byte = ['00110001', '00110000']) index10 : 4096 (4 Zeichen ; 4 Byte) index : 1E (2 Zeichen ; 2 Byte = ['00110001', '01000101']) index10 : 4136 (4 Zeichen ; 4 Byte) index : 20 (2 Zeichen ; 2 Byte = ['00110010', '00110000']) index10 : 8192 (4 Zeichen ; 4 Byte) index : 2E (2 Zeichen ; 2 Byte = ['00110010', '01000101']) index10 : 8232 (4 Zeichen ; 4 Byte) index : 30 (2 Zeichen ; 2 Byte = ['00110011', '00110000']) index10 : 12288 (5 Zeichen ; 5 Byte) index : 3E (2 Zeichen ; 2 Byte = ['00110011', '01000101']) index10 : 12328 (5 Zeichen ; 5 Byte) index : EE (2 Zeichen ; 2 Byte = ['01000101', '01000101']) index10 : 163880 (6 Zeichen ; 6 Byte) index : E0 (2 Zeichen ; 2 Byte = ['01000101', '00110000']) index10 : 163840 (6 Zeichen ; 6 Byte) index : KK0 (3 Zeichen ; 3 Byte = ['01001011', '01001011', '00110000']) index10 : 771940352 (9 Zeichen ; 9 Byte) index : KKE (3 Zeichen ; 3 Byte = ['01001011', '01001011', '01000101']) index10 : 771940392 (9 Zeichen ; 9 Byte)