Mailinglist Archive: opensuse-isdn-de (223 mails)

< Previous Next >
Re: [suse-isdn] Jede Sekunde ein Verbindungseintrag
  • From: Jens Tautenhahn <shogun@xxxxxxxxxxxxxxxxx>
  • Date: Sun, 28 Oct 2001 10:29:20 +0000 (UTC)
  • Message-id: <20011028111129.B10742@xxxxxxxxxxxxxxxxx>
Andreas Meyer schrieb am Samstag den 27. Oktober 2001:

> Leider weis ich nicht, wie hexadezimal-Zahlen zustande kommen.
> Vielleicht kann mir das ja jemand auf die Schnelle beibringen.

Hallo Andreas,

Oh. Das sollten wir schnellstens nachholen :)
(Zur Darstellung der E-Mail bitte eine Schrift mit festem Zeichenabstand
verwenden, ansonsten werden die Tabellen nicht wie vorgesehen
angezeigt.)

Das allgemein verwendete Zahlensystem ist eins mit der Basis 10. Zum
Ausrechnen des Wertes einer Zahl multipliziert man die Ziffer einer
Stelle mit der Basis (10) hoch der Position, an der sie steht. Die
Positionen werden dabei von rechts beginnend mit 0 gezählt.

Für dezimal 1234 sähe die Rechnung dann so aus:

Position
3 2 1 0 ----------+
!
1 2 3 4 V
^--- 4 x 10^0 = 4
^----- 3 x 10^1 = 30
^------- 2 x 10^2 = 200
^--------- 1 x 10^3 = 1000
-----
1234 stimmt :)

Heaxadezimale Zahlen haben die Basis 16. Da es keine 16 Ziffern gibt
(sondern nur 0 bis 9), werden für die noch benötigten 6 Ziffern A bis F
verwendet (A = 10, B = 11, C = 12, D = 13, E = 14, F = 15).

Um nun eine hexadezimale Zahl in dezimal umzuwandeln geht man genauso
wie im obigen Beispiel vor. Für hexadezimal 0x1234:

1 2 3 4
^--- 4 x 16^0 = 4
^----- 3 x 16^1 = 48
^------- 2 x 16^2 = 512
^--------- 1 x 16^3 = 4096
-----
4660 dezimal

Um eine Dezimalzahl in eine Hexadezimalzahl umzuwandeln, geht man wie
folgt vor: Man teilt die Zahl durch die höchste 16er Potenz, mit der
sich die Zahl teilen läßt. Das Ergebnis ist die Ziffer zu der Position
mit der man 16 potenziert hat. Der ganzzahlige Rest wird für den nächsten
Schritt verwendet. Z.B. für dezimal 1234:

1234 = 2 x 16^2 ( 2 x 512 = 1024) Rest: 210
!
+---------------------------------------------+
V
210 = 13 x 16^1 (13 x 16 = 208) Rest: 2
!
+---------------------------------------------+
V
2 = 2 x 16^0 ( 2 x 1 = 2)
^^^ -----
! 1234 stimmt :)
!
gibt von oben nach unten 2D2

Die Zahl 1234 (dezimal) ist also 2D2 (hexadezimal).

Analog dazu kann man durch Austauschen der Basis mit jedem anderen
Zahlensystem rechnen, z.B. dem Binärsystem mit Basis 2.

Alles klar? *eg*

BTW: Ein Tool, welches das unter X hervoragend beherrscht, ist calctool.

Gruß
Jens

--
printf("*** system failure failed.\n");

< Previous Next >
Follow Ups