AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

6-bit Ascii String

Ein Thema von Matczek · begonnen am 1. Jun 2005 · letzter Beitrag vom 1. Jun 2005
Antwort Antwort
Matczek

Registriert seit: 23. Aug 2004
Ort: Hamburg
34 Beiträge
 
Delphi 5 Professional
 
#1

6-bit Ascii String

  Alt 1. Jun 2005, 12:37
Hallo Leute,
ich habe da nochmal was wobei ihr mir helfen könnt.

Ich habe in Int To Hex wandeln ja schon erwähnt, dass ich mit dem HART Protokoll arbeite.

Ich bekomme an einer Stellen einen "packed" (6-bit) Ascii String zurück.
Beispiel:
Antwort vom Gerät: FF
binär: 11111111
Die ersten sechs Bit ist das erste Zeichen (3F). Es ergibt sich also das Zeichen "?".

Kann man das etwas elegenter lösen als jedes bit einzeln anzufassen.
Gibt es da wieder einen Trick mit dem man sich behelfen kann?

Gruß Matthias
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: 6-bit Ascii String

  Alt 1. Jun 2005, 12:59
Hallo Matczek,

Delphi-Quellcode:
var
  c: char;
  s: string;
begin
  s := 'FF';
  c := Chr(StrToInt('$' + s) shr 2);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#3

Re: 6-bit Ascii String

  Alt 1. Jun 2005, 14:04
oder auch:

Delphi-Quellcode:
Function Convert(InByte:Byte):Char;
begin
  result := Char(InByte and 3F);
end;
Greetz
Boombuler
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
Matczek

Registriert seit: 23. Aug 2004
Ort: Hamburg
34 Beiträge
 
Delphi 5 Professional
 
#4

Re: 6-bit Ascii String

  Alt 1. Jun 2005, 15:16
Danke für die antworten.

Ich hatte leider vergessen zu sagen, dass die letzten zwei Bits gleichzeitig der Anfang des nächsten Zeichens ist.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: 6-bit Ascii String

  Alt 1. Jun 2005, 15:27
Dazu braucht man ein kleines FIFO-Register. Die Laenge errechnet sich als das KGV von 6 und 8. Das waere 24 und damit kann ein DWORD als FIFO genutzt werden.
Jetzt kann man jeweils 3 Bytes reinschreiben und 4 Zeichen auslesen.
Das unterste Byte and $3F ist das gewuenschte Zeichen. Danach um 6 Bits nach rechts schieben. Das ganze 4 Mal.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz