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: arch...@mail-archive.com

Reply via email to