AGB  ·  Datenschutz  ·  Impressum  







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

"0x0008" Was für ein Typ???

Ein Thema von dadu · begonnen am 30. Aug 2005 · letzter Beitrag vom 31. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
dadu

Registriert seit: 17. Apr 2003
Ort: Dattenberg
102 Beiträge
 
Delphi 2005 Personal
 
#1

"0x0008" Was für ein Typ???

  Alt 30. Aug 2005, 17:09
Hallo Leute!

Ich lese aus einer Datei 4 Byte aus. Dokumentiert ist, dass diese 4 Byte aus einer OR-Kombination von 0x0001,0x0002,0x0004,0x0008 bestehen.

Was ist 0x***** für ein Typ bei Delphi, müsste ja 4 Byte groß sein??

thx
DaDu
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: "0x0008" Was für ein Typ???

  Alt 30. Aug 2005, 17:10
Unsigned: z.B. DWORD
Signed: z.B. Integer

In Delphi-Code schreibt man aber $0008 z.B. für 0x0008 in C.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: "0x0008" Was für ein Typ???

  Alt 30. Aug 2005, 17:11
Moin dadu,

0x**** ist die hexadezimale Notation in C, C++ usw. In Delphi waere das eine 2 Byte lange Variable.
Die Notation fuer deine Werte in Delphi waere uebrigens
$01, $02, $04, $08
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
dadu

Registriert seit: 17. Apr 2003
Ort: Dattenberg
102 Beiträge
 
Delphi 2005 Personal
 
#4

Re: "0x0008" Was für ein Typ???

  Alt 30. Aug 2005, 17:13
Danke, ihr ward ja echt flott!
DaDu
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#5

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:42
Diese Schreibweise hab ich nie kapiert. Was 0008 ist mir ja noch geläufig, aber was soll die Zahl davor? Also die 0?
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:46
Zitat von tigerman33:
Diese Schreibweise hab ich nie kapiert. Was 0008 ist mir ja noch geläufig, aber was soll die Zahl davor? Also die 0?
0x ist der Kenner für Hexadezimale Darstellung. x allein sagt gar nichts aus.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:53
Eine vorlaufende Null ist in C die Schreibweise fuer eine Oktalzahl. 017 ist also dezimal 15.
Das stammt noch aus der Zeit als die Rechner Schalter aussen hatten. Diese waren in Dreiergruppen fuer die binaere Eingabe von Oktalziffern gedacht.
Bei dem originalen K&R C waren sogar die Oktalziffern 8 und 9 erlaubt (09 = 011 = 9 dezimal). Das hat man dann bei ANSI C beseitigt.
Damit man Hexzahlen benutzen kann musste eine neue Schreibweise eingefuehrt werden. Es wurde das x bzw. X hinzugefuegt.

Der Grund ist ein besonders einfacher Parser. Kommt eine Ziffer so beginnt eine Zahl. Ist es eine 0 so beginnt eine Oktalzahl, sonst eine Dezimalzahl. Kommt dann ein x so ist es eine Hexzahl.

Alles in allem wurde hier einfach eine Funktion zum Parsen einer Dezimalzahl zweimal moeglichst primitiv erweitert und das Resultat als zur Sprache gehoerig erklaert.
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#8

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:56
Danke, das hab ich begriffen. Flickschusterei und Notlösung also. Sympathisch
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 09:58
*Semppf-ranschaufel* ... also ich würde, wenn nicht mehr als 2 Byte nötig sind, den Typ Word empfehlen. Ansonsten darf es, wie im 2ten Beitrag geschrieben, auch gern ein DWORD (Double Word = 4 Byte) sein. Diese beiden Typen sind vorzeichenlos.

Was meinst du mit Flickschusterei?
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: "0x0008" Was für ein Typ???

  Alt 31. Aug 2005, 10:08
Flickschusterei war der erste C Compiler von K&R. Erst spaeter wurde C zur Sprache erklaert und normiert.
Damals war C aber noch als bequemer Assembler gedacht und die Programmierer waren an so krudes Zeug noch gewoehnt.
Die formale Definition von Sprachen sprich Compilerbau war ja noch gar nicht richtig erfunden. Selbst bei ADA haben sie es noch nicht korrekt hingekriegt.
Selbst heute sind neue Sprachen selten von vorneherein ueber Grammatiken definiert, sondern erst gewachsen und dann formalisiert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:31 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