Sehr geehrter Herr Büchel, was Sie da aufzeigen, mag ja interessant sein, hat aber mit den <index>Ziffern nichts zu tun. Für <index>Ziffern gelten weder “Bits” noch ”Bytes”, sondern ausschließliich die Position der Ziffer im String. (Positionswert). Das müsste m.E. eigentlich klar geworden sein.
mfg Erich Schnoor > Anfang der weitergeleiteten Nachricht: > > Von: Wolli Buechel über python-de <python-de@python.org> > Betreff: [Python-de] Codepage-Methode vs. UTF8 > Datum: 16. August 2024 um 20:56:43 MESZ > An: python-de@python.org > Antwort an: Wolli Buechel <wjb...@web.de> > > Hallo Herr Schnoor, > >> hier komnmt der Code: >> if modus == "x": >> ziffer = input(" insert <index>number > ") >> point = nachdez(basis,ziffer) >> point = int(point) >> zeichen = chr(point) >> digit = nachsys(2,point) >> print(" Digit: ",digit) >> print() >> print(" sign: >> ",zeichen) >> print(" point: >> ",point ) >> print(" binär: >> ",digit) >> lg = len(digit) >> print(" bit: >> ",lg) > > den habe ich etwas verbessert: > > def decodeIndex(index, ziffern): > """ index : ein Zahlzeichen (aus beliebig vielen Ziffern) > des Positionssystems zur Basis b = len(ziffern) > Voreinstellung: b = 4096 > ziffern : Ziffernstring (aus UTF8-Zeichen) zur Notation > von Zahlzeichen dieses Positionsystems > > index codiert die dezimale Ordnungsnummer > point = ord(ch) eines UTF8-Zeichens ch > also index = nachsys(basis, point, ziffern) > zulässige Werte für index: > index < nachsys(basis, 2**24-1, ziffern) > """ > MaxUTF8 = 1114111 > point = nachdez(basis, index, ziffern) # point = ord(ch) eines > UTF8-Zeichens ch > digit = nachsys(2, point, ziffern) # point = ord(ch) als Dualzahl > print("\nIndex: %s" % index) > print(" Dual: ", digit) > print(" point: ", point ) > # print(" binär: ", digit) # irreführende Bezeichnung: dual != binär > # siehe: > https://www.danisch.de/blog/2024/07/26/vom-unterschied-zwischen-einem-binaer-und-einem-dualsystem/ > lg = len(digit) # Anzahl der Dualziffern (0,1) von digit > print(" bit: ", lg) # irreführende Bezeichnung: Dualziffer != > bit > if point > MaxUTF8: > print("Fehler: point > %d" % MaxUTF8) > print("ValueError: chr() arg not in range(0x110000)") > return > zeichen = chr(point) # UTF8-Zeichen, ord(zeichen) = point > print(" sign: ", zeichen) > > und damit etwas herumgespielt: > > for k in range(4, 18, 2): > point = 2**(2*k) - 1 > index = nachsys(basis, point, ziffern) > decodeIndex(index, ziffern) > > ergibt: > > Basis : 4096 > > Index: Ɖ > Dual: 11111111 > point: 255 > bit: 8 > sign: ÿ > > Index: ꓰ > Dual: 111111111111 > point: 4095 > bit: 12 > sign: > > Index: Fꓰ > Dual: 1111111111111111 > point: 65535 > bit: 16 > sign: � > > Index: Ɖꓰ > Dual: 11111111111111111111 > point: 1048575 > bit: 20 > sign: � > > Index: ꓰꓰ > Dual: 111111111111111111111111 > point: 16777215 > bit: 24 > Fehler: point > 1114111 > ValueError: chr() arg not in range(0x110000) > > Index: Fꓰꓰ > Dual: 1111111111111111111111111111 > point: 268435455 > bit: 28 > Fehler: point > 1114111 > ValueError: chr() arg not in range(0x110000) > > Index: Ɖꓰꓰ > Dual: 11111111111111111111111111111111 > point: 4294967295 > bit: 32 > Fehler: point > 1114111 > ValueError: chr() arg not in range(0x110000) > > ------------------------------ > > Da Sie -- vielleicht wegen des Sommerwetters? -- offensichtlich nur > CPM-Codeschnipsel-Gedöns und etwas Python sprechen können, > muss ich wohl oder übel meine Frage > > Muß in einem längeren Indexstring aus einziffrigen (Typ A) und mehrziffrigen > (Typ B) 4096-er Systemzahlen > zwischen diesen unterschiedlichen Zeichentypen ein Trennzeichen (z.B. > Leerzeichen) stehen? > > selbst beantworten, und zwar mit einem JA. > Dies vollkommen analog dem Leerzeichen, um zwischen den drei Zahlen 4711 und > 47 11 unterscheiden zu können. > > Was bedeutet das für den Byte-Gehalt B(N) der beiden Nachrichten, > (1) der Original-Nachricht (= N1) eines Textes aus -- clever konzipierten -- > UTF8-Zeichen und > (2) der zu Index-Zahlen des 4096-er Systems übersetzten Nachricht (= N2) -- > "angereichert'' mit Leerzeichen zwecks Zahlzeichentrennung? > > Ich denke, das bedeutet B(N2) > B(N1). > > Oder irre ich mich da? > > W. Büchel > _______________________________________________ > python-de Mailingliste -- python-de@python.org > Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an > python-de-le...@python.org > https://mail.python.org/mailman3/lists/python-de.python.org/ > Mitgliedsadresse: eschn...@multi-matrix.de _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-le...@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: arch...@mail-archive.com