AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Umwandlung Big Endian nach Little Endian
Thema durchsuchen
Ansicht
Themen-Optionen

Umwandlung Big Endian nach Little Endian

Ein Thema von jryan · begonnen am 1. Dez 2003 · letzter Beitrag vom 3. Dez 2003
Antwort Antwort
Seite 2 von 2     12   
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Umwandlung Big Endian nach Little Endian

  Alt 2. Dez 2003, 12:42
Oder benutz die WinSock-Funktionen
ntohs bzw. htons und
ntohl bzw. htonl.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
jryan

Registriert seit: 25. Nov 2003
19 Beiträge
 
Delphi 7 Architect
 
#12

Re: Umwandlung Big Endian nach Little Endian

  Alt 3. Dez 2003, 06:23
@all:
Danke für die Auskünfte!

@choose:
Das mit dem Decorator werde ich mir mal anschauen. Ich muss ehrlich sagen, das ich den Begriff 'Decorator' eigentlich noch nie gehört habe, aber nach dem ersten überfliegen deines Post in einem anderen Thread hört sich das ganze sehr verlockend an. (Vielleicht nicht unbedingt für diesesn Problem aber auf jeden Fall für einig ander die zur Zeit in mache sind)!

@sakura:
Leider habe ich bisher keine Delphi3000-Account! Nach dem ersten (schnellen) Ansicht der Website stellt sich natürlich für mich die Frage, ist der Account bei denen kostenlos?

@Rainer_Unger:
Für Word-Zahlen hast du natürlich recht. Allerdings habe ich das ganze in eine Zeile unterbekommen :
Delphi-Quellcode:
function Big2LittleEndian(Wert: Word):Word;
begin
  Result := Lo(Wert) * 256 + Hi(Wert);
end;
Für Longword-Zahlen ist das ganze aus meiner Sicht nicht ganz so simple, Mein Lösungsansatz, den ich gestern gefunden habe ist folgender:
Delphi-Quellcode:
function Big2LittleEndian(Wert: LongWord):LongWord;
var
  i : Integer;
begin
  Result := 0;

  for i:= 0 to 3 do
    Result := (Result SHL 8) + Byte(Wert SHR (8*i));

end;
@Chewie:
Da ich eigentlich nicht mit dem Netzwerk arbeiten wollte (und muss, eigentlich soll das Programm auch auf einen Standalone-rechner ohne Netzwerk[auch ohne Modem, ja sowas gibst auch noch] laufen) weis ich auf den ersten Blick nicht, was mir diese Funktionen bringen. Vielleicht könntest du mir das noch mal ganz kurz erklären.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Umwandlung Big Endian nach Little Endian

  Alt 3. Dez 2003, 06:40
Wie wäre es mit:
Zitat:
The MAKEWORD macro creates a WORD value by concatenating the specified values.

Syntax
Code:
WORD MAKEWORD(
    BYTE bLow,
    BYTE bHigh
);
Entsprechend gibt es auch noch:
Zitat:
The MAKELONG macro creates a LONG value by concatenating the specified values.

Syntax
Code:
DWORD MAKELONG(
    WORD wLow,
    WORD wHigh
);
Zum Zerlegen gibt es wiederum: HiByte und LoByte bzw. HiWord und LoWord.

So würde ich es zu mindest machen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Umwandlung Big Endian nach Little Endian

  Alt 3. Dez 2003, 13:15
Die Funktionen htons etc. greifen nicht auf Netzwerkresourcen zu, sondern stellen nur eine Byte-Reihenfolge-Umkehr da.
htons steht für Host to [/b]N[/b]etwork Short, ntohs macht es umgekehrt. Diese Funktionen arbeiten aber natürlich gleich, sie werden nur wegen der besseren Lesbarkeit unterschieden. Der tiefere Sinn ist der, dass zur Netzübertragung Byte-Reohenfolgen festgelegt sind, nämlich die Host Order und die Network Order. Diese Funktionen sollte es auf jedem Betriebssystem mit Socket-Schnittstelle geben.
htonl und ntohl unterscheiden sich übrigens dadurch, dass sie für 4 Byte-Integer ausgelegt sind und nicht für 2 Byte wie Short.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:28 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