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


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

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

From "Wolli Buechel" <wjb131@web.de>
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Fwd: Codepage-Methode vs. UTF8
Date 2024-08-17 10:13 +0000
Message-ID <172388960725.28933.12839032272469976983@mail.python.org> (permalink)
References <33D07169-A4D4-4CE9-822E-B0D81A823019@multi-matrix.de>

Show all headers | 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