Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #6109 > unrolled thread

[Python-de] Keyboard-coding

Started byErich Schnoor <eschnoor@multi-matrix.de>
First post2024-07-06 14:56 +0200
Last post2024-07-09 14:42 +0000
Articles 3 — 3 participants

Back to article view | Back to de.comp.lang.python


Contents

  [Python-de] Keyboard-coding Erich Schnoor <eschnoor@multi-matrix.de> - 2024-07-06 14:56 +0200
    Re: [Python-de] Keyboard-coding Hermann Riemann <nospam.ng@hermann-riemann.de> - 2024-07-08 08:14 +0200
      [Python-de] Re: Keyboard-coding "Wolli Buechel" <wjb131@web.de> - 2024-07-09 14:42 +0000

#6109 — [Python-de] Keyboard-coding

FromErich Schnoor <eschnoor@multi-matrix.de>
Date2024-07-06 14:56 +0200
Subject[Python-de] Keyboard-coding
Message-ID<9DB00D2D-CBCD-4EAA-87F2-7B1E65733F85@multi-matrix.de>
Hallo liebe Pythonier,
Python 3.12 macht’s möglich:

Mit dem neu generierten Zahlensystem zur Basis 4096
und einer angepassten Tastatur können alle Unicode-Zeichen 
von <point> 1 bis <point>65305 mit 2 Byte kodiert werden.

Da Posting des Programms in der Mailingliste zu umfangreich 
ist und auch den Regeln widerspricht, kann jeder die
neuen Erkenntnisse (keyboard-coding) bei mir anfordern!
                   eschnoor@multi-matrix.de
Den Programmcode habe ich selbst entwickelt und
ist deshalb  frei von irgendwechem Schadcode.

Mit internetten Grüßen
Ernst Erich Schnoor
eschnoor@multi-matrix.de

[toc] | [next] | [standalone]


#6111

FromHermann Riemann <nospam.ng@hermann-riemann.de>
Date2024-07-08 08:14 +0200
Message-ID<lf1ef1F2bnpU2@mid.individual.net>
In reply to#6109
Am 06.07.24 um 14:56 schrieb Erich Schnoor:
> Hallo liebe Pythonier,
> Python 3.12 macht’s möglich:
> 
> Mit dem neu generierten Zahlensystem zur Basis 4096
> und einer angepassten Tastatur können alle Unicode-Zeichen
> von <point> 1 bis <point>65305 mit 2 Byte kodiert werden.
> 
> Da Posting des Programms in der Mailingliste zu umfangreich
> ist und auch den Regeln widerspricht, kann jeder die
> neuen Erkenntnisse (keyboard-coding) bei mir anfordern!
>                     eschnoor@multi-matrix.de
> Den Programmcode habe ich selbst entwickelt und
> ist deshalb  frei von irgendwechem Schadcode.
> 
> Mit internetten Grüßen
> Ernst Erich Schnoor
> eschnoor@multi-matrix.de
> 
> 

Für 👎 reichen eine 2 byte.

-- 
<http://www.hermann-riemann.de>

[toc] | [prev] | [next] | [standalone]


#6113 — [Python-de] Re: Keyboard-coding

From"Wolli Buechel" <wjb131@web.de>
Date2024-07-09 14:42 +0000
Subject[Python-de] Re: Keyboard-coding
Message-ID<172053613552.24386.15010650542253095918@mail.python.org>
In reply to#6111
Der Einwand mit dem Daumen-Runter-Zeichen (U+1F44E = 128078) zieht nicht, das liegt außerhalb des Bereichs 1..65535. Nur in dem kann man mit dem angekündigten Programm  (die dezimalen Ordnungsnummern) der UTF8-Zeichen mithilfe des 4096-Zahlensystems (=4KZS) mit (höchstens) 2 Byte codieren. Aber diese Behauptung ist nicht haltbar. 

Das 4KZS arbeitet (im günstigsten Fall) mit den ersten 4097 Unicode-Zeichen (ohne das NULL-Byte) als Ziffern, z.B.:

ziffern4096 = ''.join([ chr(x) for x in range(1,4097) ]) 

Die Zahlen des 4KZS sind nichts anderes als die dezimalen Ordnungszahlen ord(z) eines UTF8-Zeichens z, umgewandelt in Zahlzeichen des 4KZS. Das Programm macht also im Wesentlichen eine simple Basistransformation, wie die Python-Funktionen bin(), oct() oder hex(). Das 4KZS ist lediglich eine Erweiterung des Hexadezimalsystems auf die Basis 4096 mit 4096 Ziffern.

Gesucht: Anzahl der mit diesen Ziffern notierbaren Zahlzeichen, die höchstens 2 Byte erfordern.

Lösung: Das UTF8-System besteht aus 1/2/3/4-Byte-Zeichen (Oktetten) aus den 4 Bereichen A,B,C,D:
Bereich A: 1-Byte-Zeichen in range(0,2**7); Anzahl: 128 
Bereich B: 2-Byte-Zeichen in range(2**7, 2**11); Anzahl: 1.920 
Bereich C: 3-Byte-Zeichen in range(2**11, 2**16); Anzahl: 63.488 (minus 2.024 surrogates) = 61.440
Bereich D: 4-Byte-Zeichen in range(2**16, 1114112); Anzahl: 1.048.575

Die gesuchten Zahlzeichen mit höchstens 2 Byte sind folglich ein- oder zweiziffrig. 
(a) 1-Byte-Zahlzeichen sind die UTF8-Zeichen aus dem Bereich A. Dies sind 127 Stück.
(b) 2-Byte-Zahlzeichen gibt es einziffrig oder zweiziffrig. Die Einziffrigen bestehen aus einer Ziffer des Bereichs B. Davon gibt es 1920 Stück. Die zweiziffrigen bestehen aus Ziffernpaaren (X,Y) des Bereichs A. Davon gibt es 127**2 = 16.129 Stück. Von diesen liegen jedoch nur 1920 im Intervall 1..65535.

Folglich beträgt die Anzahl der 4KZS Zahlzeichen mit höchstens 2 Byte 127 +2*1920 = 3.967 Stück.
Das sind prozentual 3.967/63.487 = 6.25% der Zahlen im Intervall 1..65535, also gerade einmal ein Sechzehntel der fraglichen Zahlen.
Damit ist die Behauptung , ALLE Zahlzeichen in diesem Intervall ließen sich mit höchstens 2 Byte aus dem 4KZS darstellen, widerlegt.

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.python


csiph-web