Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.python > #6227

[Python-de] Re: Fwd: Codepage-Methode vs. UTF8

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From "Wolli Buechel" <wjb131@web.de>
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Fwd: Codepage-Methode vs. UTF8
Date Sat, 17 Aug 2024 10:13:27 -0000
Lines 152
Message-ID <172388960725.28933.12839032272469976983@mail.python.org> (permalink)
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 <python-de.python.org>
Archived-At <https://mail.python.org/archives/list/python-de@python.org/message/SUQLNOV5H6S6HJRVLUMI7IXFHWDWKDNA/>
List-Archive <https://mail.python.org/archives/list/python-de@python.org/>
List-Help <mailto:python-de-request@python.org?subject=help>
List-Owner <mailto:python-de-owner@python.org>
List-Post <mailto:python-de@python.org>
List-Subscribe <mailto:python-de-join@python.org>
List-Unsubscribe <mailto:python-de-leave@python.org>
Xref csiph.com de.comp.lang.python:6227

Show key headers only | View raw


Hallo Herr Schnoor,

> 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ß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 <index>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 <index>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 <index>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 <index>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 <index>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 <syszahl> 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)

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

[Python-de] Re: Fwd: Codepage-Methode vs. UTF8 "Wolli Buechel" <wjb131@web.de> - 2024-08-17 10:13 +0000

csiph-web