
Hallo Herr Schnoor, wie ich zuletzte dargelegt habe, verwendet UTF8 einen "Geheimcode" der Bytes eines Zeichens, mit dem diese Bytes markiert werden als Solo-Bytes oder als zusammengehörige Bytes eines Mehr-Byte-Zeichens. Hier noch mal zur Erinnerung:
Dieser Geheimcode ist doch clever gemacht von den Entwicklern der UTF8-Codierung der Unicode-Zeichen, oder?
Jetzt meine Frage an sie als Schöpfer der Codepage-Methode (CPM): Wie löst Ihre CPM dieses Problem, ob ein Zeichen in einem Indexstring ein Solo-Zeichen ist oder ob zwei (oder mehr ?) Zeichen zusammengehören als Codierung einer Systemzahl. Ein konkretes Beispiel: Angenommen, der Ziffernstring für das 4096-er System lautet schlicht ziffern = ''.join( [ chr(x) for x in range(1,4097) ] ) und ich habe den Indexstring 'èé '. Das könnten theoretisch zwei einziffrige Zahlzeichen sein oder eine zweiziffrige Systemzahl. Wie löst Ihr CPM-Programm dieses Problem? W. Büchel

Sehr gehrter Herr Büchel, hier meine Lösung: Changing of number systems basis: 4096 change basis (+) select: mode ..D.. (dezimal --> system:) ..S.. (system --> dezimal:) ..N.. (system --> system) ..x.. (calling <index>number) ..Z.. (show number system:) ..f.. (next step) ..m. . (main menue) chose mode > x Basis: 4096 insert <index>number > èé Digit: 1100110000001100111 sign: point: 417895 binär: 1100110000001100111 bit: 19 foreward to next task! mfg Erich Schnoor

Hallo Herr Schnoor, danke für Ihre Antwort. Ich hätte es vorgezogen, Sie hätten mir auf Deutsch (statt mit CPM-Output-Geschnipsel) geantwortet. Das Geschnipsel muß ich mir jetzt mühsam freihändig übersetzen: Meine Frage lautete: Interpretiert CPM diesen Indexstring aus zwei Ziffern (èé) als (1) zwei einziffrige oder als (2) ein zweiziffriges Zahlzeichen? Ihre Antwort lautet ganz offensichtlich (2) : Als ein zweiziffriges Zahlzeichen. Da ich zuvor auf den "Geheimcode" von UTF8 hingewiesen hatte, wollte ich natürlich herausfinden, wie unterscheidet CPM in einem längeren Indexstring diese beiden Typen von Zahlzeichen (A=einziffrig oder B=zweiziffrig)? Aus Ihrer Antwort schließe ich Folgendes: Ein längerer Indexstring, der aus zwei Typen (A, B) von Zahlzeichen besteht, muß zwischen diese beiden Typen irgendein Zeichen (z.B. Komma, Bindestrich, Leerzeichen, ...) einfügen, um sie als Typ A oder als Typ B zu markieren. Also ganz analog, wie man in einem Text zwischen Wörter ein Leerzeichen einfügt. Habe ich Ihre Antwort richtig gedeutet? W. Büchel

Hallo, Herr Büchel, 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) mfg Erich Schnoor

Sehr gehrter Herr Büchel, hier meine Lösung: Changing of number systems basis: 4096 change basis (+) select: mode ..D.. (dezimal --> system:) ..S.. (system --> dezimal:) ..N.. (system --> system) ..x.. (calling <index>number) ..Z.. (show number system:) ..f.. (next step) ..m. . (main menue) chose mode > x Basis: 4096 insert <index>number > èé Digit: 1100110000001100111 sign: point: 417895 binär: 1100110000001100111 bit: 19 foreward to next task! mfg Erich Schnoor

Hallo Herr Schnoor, danke für Ihre Antwort. Ich hätte es vorgezogen, Sie hätten mir auf Deutsch (statt mit CPM-Output-Geschnipsel) geantwortet. Das Geschnipsel muß ich mir jetzt mühsam freihändig übersetzen: Meine Frage lautete: Interpretiert CPM diesen Indexstring aus zwei Ziffern (èé) als (1) zwei einziffrige oder als (2) ein zweiziffriges Zahlzeichen? Ihre Antwort lautet ganz offensichtlich (2) : Als ein zweiziffriges Zahlzeichen. Da ich zuvor auf den "Geheimcode" von UTF8 hingewiesen hatte, wollte ich natürlich herausfinden, wie unterscheidet CPM in einem längeren Indexstring diese beiden Typen von Zahlzeichen (A=einziffrig oder B=zweiziffrig)? Aus Ihrer Antwort schließe ich Folgendes: Ein längerer Indexstring, der aus zwei Typen (A, B) von Zahlzeichen besteht, muß zwischen diese beiden Typen irgendein Zeichen (z.B. Komma, Bindestrich, Leerzeichen, ...) einfügen, um sie als Typ A oder als Typ B zu markieren. Also ganz analog, wie man in einem Text zwischen Wörter ein Leerzeichen einfügt. Habe ich Ihre Antwort richtig gedeutet? W. Büchel

Hallo, Herr Büchel, 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) mfg Erich Schnoor
participants (2)
-
Erich Schnoor
-
Wolli Buechel