AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Keine richtige Frage zu DWord

Ein Thema von ATS3788 · begonnen am 11. Dez 2012 · letzter Beitrag vom 12. Dez 2012
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Keine richtige Frage zu DWord

  Alt 11. Dez 2012, 08:51
Hallo

dies ist eine Sache die mir gerade durch den Kopf geht und
ich poste sie hier, weil es ohne "vielleicht" Belang ist.

Ich schreibe mir zu Zeit eine Komponente rum um das Bass Projekt.
Zitat:
Hätte ich schon früher machen sollen
Da wird zum Beispiel ein DWord - Cardinal für Werte genommen
die man locker mit einem Byte, Word oder integer
erledigen kann.

Warum nehmen diese guten Programmierer
so große Deklarationen
Martin MIchael
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Keine richtige Frage zu DWord

  Alt 11. Dez 2012, 09:26
Hmm.... ich könnte jetzt stumpf auf's Handbuch verweisen, aber ich versuch's mal kurz anzureißen:

Zuerst einmal: warum soll ein DWord/Cardinal größer sein als ein Integer? Ich gehe mal von Win32 aus, sind alle drei 4 Byte groß.

Byte und Word auch

Win32 ist ein 32 Bit Betriebssystem, das läuft auf einer 32 Bit CPU, da sind 32 Bit die "kleinste" Verarbeitungseinheit.

Klar kann man innerhalb von 4 Bytes auch 4 einzelne Byte oder 2 einzelne Word unterbringen, das kostet aber Performance.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Keine richtige Frage zu DWord

  Alt 11. Dez 2012, 09:44
Wobei die Performnancekosten relativ begrenzt sind, da es auch CPU-Befehle gibt, die jeweils auf der konkreten Größe arbeiten. Man kann ja z.B. bei einer 64-Bit CPU nicht nur z.B. RAX ansprechen (64 Bit), sondern auch EAX (32 Bit), AX (16 Bit) und AH / AL (8 Bit).

Schneller wird es aber mit den kleineren Datentypen sicher nicht.

Zu DWord / Cardinal versus Integer:
Integer ist ein Metadatentyp, der auf einen konkreten Datentyp gemappt ist, in dem Fall auf LongInt. Hierbei handelt es sich um einen vorzeichenbehafteten Datentypen.
DWord bzw. Cardinal hingegen ist vorzeichenlos und kann daher größere Zahlen enthalten, da negative Zahlen darin nicht gespeichert werden können.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#4

AW: Keine richtige Frage zu DWord

  Alt 12. Dez 2012, 10:52
CCRDude

Ja da hast Du recht, wie Dumm von mir

Ich denke immer noch in 8 bit,
aber richtig in einem 32 Bit System macht das keinen Sinn,

Nun wird mir das auch mit LongBool klar.

jaenicke Danke das ist sehr aufschlussreich.
Martin MIchael

Geändert von ATS3788 (12. Dez 2012 um 10:53 Uhr) Grund: hinzufügen
  Mit Zitat antworten Zitat
Alt 12. Dez 2012, 11:18     Erstellt von gammatester
Dieser Beitrag wurde von SirThornberry gelöscht.
Alt 12. Dez 2012, 11:19     Erstellt von DeddyH
Dieser Beitrag wurde von SirThornberry gelöscht.
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:24 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