Hex-Dez?

Dieses Thema im Forum "RedHat,Fedora & CentOS" wurde erstellt von eddyly, 02.06.2003.

  1. eddyly

    eddyly Doppel-As

    Dabei seit:
    19.05.2003
    Beiträge:
    107
    Zustimmungen:
    0
    da interessiert mich nun dies:

    oft finet man Angaben zu Adressen. Sie sehen dan z.B. so aus: 0x328. Verstehe ich es richtig das es sich dabei um eine Hex-Zahl ist, die in das dez.-Format umgewandelt wurde?

    Was dann bedeuten würde:

    0x328h=510Dez.?

    Wer kann mir das erklären?

    Vielen Dank!

    Ed
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 reset1874, 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Es ist keine reine Hexadezimalzahl, denn bei denen ist der Verlauf :
    1,2,...,9, A(=10), B(=11), C(=12), D(=13), E(=14),F(=15), 11, 12, 13,....

    Somit wäre die 11 im Hexadezimalsystem, die 16 im Dezimalsystem.

    Bei der Zahl 0x328h handelt es sich um einen sogenannten Bytecode, den zu erklären, echt zu schwer ist. Es handelt sich dabei aber meist um Operationsadressen oder Registeradressen für Schaltwerke, beispielsweise deinen Prozessor oder ander Hardware deines Computers.
    Operationsadressen deswegen, weil bestimmte aritmetische oder logische Operationen ja auch angesprochen werden müssen.
    Registeradressen, weil du ja deinen Zeugs irgendwo abspeichern möchtest.

    Wenn du in C, C++, oder Java ein Zeiger oder ein Objekt generierst, stehen häufig solche Adressen darin, die also hardwarespezifische Positionen oder auch (ausgenommen Java) Operationen wie Addieren oder Multiplitieren, oder auch nur ein logisches '&' oder '|' sind.

    So oder so ungefähr!
     
  4. eddyly

    eddyly Doppel-As

    Dabei seit:
    19.05.2003
    Beiträge:
    107
    Zustimmungen:
    0
    Vielen Dank!

    Du hast mir ein ganzes Stük weiter geholfen!

    Ed
     
  5. #4 Belkira, 02.06.2003
    Belkira

    Belkira Routinier

    Dabei seit:
    18.06.2002
    Beiträge:
    255
    Zustimmungen:
    0
    Ort:
    -
    Häh? Und wo ist die 10?

    Nicht so schlüssig, Deine Beschreibung. Das Hexadezimalsystem ist eine Zahlendarstellung mit Basis 16. Erste Stelle hat die Wertigkeit 16 hoch 0, die zweite 16 hoch 1, die dritte 16 hoch 2 usw. Eine Stelle ist also 16-wertig, geht von dezimal 0 bis 15, wobei pro Stelle aber nur eine einstellige Ziffer verwendet wird, also die Wertigkeiten 10,11,12,13,14,15 als A,B,C,D,E,F Ziffer dargestellt werden.

    Häh?

    0x11 ist 17. 0x10 ist 16.
    Naaa. 0x328h ist hexadezimal. 0x ein Präfix, um diese Zahlen von anderen Darstellungen (z.B. dezimaler oder oktaler Schreibweise) zu unterscheiden. h ein redundantes Postfix für "hex".
    Nein.

    0x328h = 3*16^2 + 2*16^1 + 8*16^0 = 808 dezimal
     
  6. #5 reset1874, 02.06.2003
    Zuletzt bearbeitet: 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Ja, mist, hab die 10 vergessen.

    Das x62h oder sowas hex ist hab ich schon gemerkt, als ich wegging. Aber ich wollte dann nicht zurück, es nochmal verbessern.
     
  7. eddyly

    eddyly Doppel-As

    Dabei seit:
    19.05.2003
    Beiträge:
    107
    Zustimmungen:
    0
    Okay

    Ich möchte einmal erklären wie ich darauf komme.
    Im Buch "von Windows zu Linux" schreibt der Autor E.Petter u.a. "Tragen Sie die Parameter für den IO-Prot....ein" Und weiter: "io=0x220....... Das 0 voreinigen Zahlen bezeichnet einen hexadezimalen Wert wie er bei der Ausgabe von Adressen üblich ist."

    Nun habe ich seit Jahren mit Computern, wenn auch nicht mit Linux zu tun und daher kam es mir schon recht merkwürdig vor: 0xyyy soll eine Hex-Zahl sein?

    Daraus ist dann diese Frage entstanden.

    Ander ausgedrückt in meinem konkreten Fall wüsste ich schon gerne was ich in der Schreibweise 0x... eingeben soll für diese Hex-Zahlen (DAS sind nämlich welche): C400 C4FF.

    Schaut: bei der Gelegenheit wüsste ich deshalb schon gerne was diese Schreibweise ausdrücken soll, zumal ch diese Ausdrucksweise immer wieder im Zusammenhang mit Linux finde.
    Danke an alle, die sich dieses Themas annehmen!

    Ed
     
  8. #7 reset1874, 02.06.2003
    Zuletzt bearbeitet: 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Ja, wenn du die Position deines IO Ports weist, kannst du ihn eintragen als: '0x<hexposition>h'.
    Wenn du die IO Portadresse nicht kennst, kannst du mal:

    cat /proc/ioports

    eingeben. Dann bekommst du etwa sowas:
    ...
    ...
    03f8-03ff : serial(auto)
    0cf8-0cff : PCI conf1
    d400-d4ff : Davicom Semiconductor, Inc. Ethernet 100/10 MBit
    d400-d4ff : dmfe
    d800-d83f : Silicon Integrated Systems [SiS] SiS7012 PCI Audio Accelerator
    d800-d83f : SiS 7012
    dc00-dcff : Silicon Integrated Systems [SiS] SiS7012 PCI Audio Accelerator
    dc00-dcff : SiS 7012
    ff00-ff0f : Silicon Integrated Systems [SiS] 5513 [IDE]
    ff00-ff07 : ide0
    ff08-ff0f : ide1

    Nehmen wir z.B die vorletzte Adresse ff00-ff07 : ide0, dann siehst Du, dass sie bei ff00 beginnt und bei ff07 aufhört. Die Länge ist also 8 Bit.
    Oder Du nimmst die Ethernet Karte sie beginnt mit 'd400' und endet mit 'd4ff', sie hat also eine länge von 256 Bit in Dezimalschreibweise oder 100 Bit in Hexadezimalschreibweise.
    Ich weiß aber nicht, ob du nur den Anfangswert angeben musst, also wenn die Länge bekannt und normiert ist oder Du die volle Länge oder die Differenz angeben musst
     
  9. #8 Belkira, 02.06.2003
    Belkira

    Belkira Routinier

    Dabei seit:
    18.06.2002
    Beiträge:
    255
    Zustimmungen:
    0
    Ort:
    -
    Nochmal, 0x ist ein Präfix, das dazu dient, hexadezimale Zahlen von dezimalen Zahlen zu unterscheiden, denn nicht jede Hex-Zahl enthält Buchstaben! Verwendet wird diese Schreibweise u.a. in der Programmiersprache C. Standard Ein- und Ausgaberoutinen nutzen dieses Präfix.

    Für Deine C400 C4FF gibst Du folglich 0xc400 und 0xc4ff ein. Die Großschreibung der Hex-Ziffern machen einige nur der Lesbarkeit halber.

    Daß Hex-Darstellung gewöhnlich in Assembler- und vielen Hochsprachen verwendet wird, liegt an der besseren Lesbarkeit im Vergleich zu Dezimaldarstellung (dort sind einzelne Bitpositionen in einer Zahl schwer zu erkennen) und Binärdarstellung (dort haben die Zahlen zu früh eine zu große Stellenanzahl).
     
  10. #9 reset1874, 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Und wenn es Dich interessiert, kannst du mal alle Dateien unter /proc/ anschauen, das ist sehr interessant und gibt dir etwas Einblick in deine Hardware.
     
  11. #10 Belkira, 02.06.2003
    Belkira

    Belkira Routinier

    Dabei seit:
    18.06.2002
    Beiträge:
    255
    Zustimmungen:
    0
    Ort:
    -
    Die Adressen in Deinem Beispiel haben alle die Länge 16-bit. Es sind allesamt 16-bit I/O Ports. Wenn dort ff00-ff07 steht, belegt ein Gerät 8 verschiedene Ports bzw. nutzt einen I/O Adreßraum der Größe 8 Ports.
     
  12. #11 reset1874, 02.06.2003
    Zuletzt bearbeitet: 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Ich weiß gar nicht, warum du da noch Worte draufaddierst. Die Betonung, dass es sich hier um die Zugriffsbreite auf den Controller, nicht auf die Daten handelt, braucht nur ein ewiger Nörgler zu unterstreichen und verbessert rein gar nichts.
    Ich sagte das auf die erste IDE-Schnittstelle mit 8 Bit Breite (ff00-ff07=8 Bit) zugegriffen wird. Ich habe keine Ahnung, wie du auf 16 Bit kommst? Und was heisst eigentlich "alle"?
     
  13. eddyly

    eddyly Doppel-As

    Dabei seit:
    19.05.2003
    Beiträge:
    107
    Zustimmungen:
    0
    Ich danke Euch nochmal für die ausführliche Auskunft!

    Das ist doch einmal etwas nach dem vielen Frust in den letzten Tagen!:]


    Ed
     
  14. #13 Belkira, 02.06.2003
    Belkira

    Belkira Routinier

    Dabei seit:
    18.06.2002
    Beiträge:
    255
    Zustimmungen:
    0
    Ort:
    -
    Weil Du wiederholt Mist erzählst. ;)
    Nein, kein 'h'.
    Siehe oben. Was soll die Rechnung mit ff00-ff07? ff00 bis ff07 sind 8 Byte ab Basisadresse 0xff00. Wie kommst Du von ff00-ff07 auf 8 Bit, und wozu willst Du das überhaupt?
    Du hast nur 16-bit I/O Portadressen angeführt.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 reset1874, 02.06.2003
    Zuletzt bearbeitet: 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
    Du laberst totalen Müll. Wie kommst du auf 8 Byte, irgendwie glaube ich, das du Bit und Byte verwechselst. 8 Bit = 1 Byte das ist dir klar oder? Und von ff00-ff07 ist es eine Länge von 8 BIT und nicht 8 Byte!! und ich weiß immer noch nicht wie du auf 16 Bit kommst?
     
  17. #15 reset1874, 02.06.2003
    reset1874

    reset1874 Eroberer

    Dabei seit:
    17.05.2003
    Beiträge:
    55
    Zustimmungen:
    0
Thema: Hex-Dez?
Besucher kamen mit folgenden Suchen
  1. hex adresse