AGB  ·  Datenschutz  ·  Impressum  







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

Hex-Zahlen in C und Delphi

Ein Thema von oXmoX · begonnen am 30. Jun 2005 · letzter Beitrag vom 30. Jun 2005
Antwort Antwort
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#1

Hex-Zahlen in C und Delphi

  Alt 30. Jun 2005, 13:58
Hallo,

ich habe ein Stück C-Code aus einem Header-File, das ich in Delphi abbilden möchte:

Code:
#define IPL_DEPTH_SIGN 0x80000000
#define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8)
das Delphi Analog sieht bei mir so aus:

Code:
const
  IPL_DEPTH_SIGN: Integer = $80000000;
  IPL_DEPTH_8S:  Integer = IPL_DEPTH_SIGN or Integer($80000000);
Allerdings meldet der Compiler in beiden Zeilen eine Warnung:
Konstantenausdruck verletzt untere Grenzen.

Wie kann ich das verhindern?

Gruß,
oXmoX
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Hex-Zahlen in C und Delphi

  Alt 30. Jun 2005, 14:02
Lass einfach das Integer weg, der Compiler macht schon das Richtige draus

Also:
Delphi-Quellcode:
const
   IPL_DEPTH_SIGN = $80000000;
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Hex-Zahlen in C und Delphi

  Alt 30. Jun 2005, 14:03
Delphi-Quellcode:
const
  IPL_DEPTH_SIGN = $80000000;
  IPL_DEPTH_8S = IPL_DEPTH_SIGN or 8;
Das ist die korrekte Konversion.
Wenn da 8 steht dann sollte man auch 8 nehmen und nicht $80000000.
Getypt muessen die Konstanten nicht sein. Sowohl Delphi als auch C nehme den naechstpassenden Typ, der im Falle von Hexkonstanten Cardinal ist.
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#4

Re: Hex-Zahlen in C und Delphi

  Alt 30. Jun 2005, 14:24
Zitat von Robert Marquardt:
Wenn da 8 steht dann sollte man auch 8 nehmen und nicht $80000000.
Oh ...kleiner Fehler meinerseits. In meinen Sourcen stand das schon richtig.

Zitat von jfheins:
Lass einfach das Integer weg, der Compiler macht schon das Richtige draus
Aha ...wusste garnicht, dass es in Delphi auch ungetypte Konstanten gibt.

Danke!
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#5

Re: Hex-Zahlen in C und Delphi

  Alt 30. Jun 2005, 16:36
oder mach aus dem integer nen cardinal...

DA

integer von -2,1Mrd ... +2,1Mrd geht was etwa 7FFFFFFF entspräche
80000000 wäre schonn eins drüber aber schon aus dem gültigkeitsbereich vom int raus, eigentlich

cardinal = 0..+4,2Mrd

blah..... steht auch alles in der Hilfe
  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 19:40 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