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

Reply via email to