AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Zahl-Umrechnungen Bin, Oct, Dec, Hex
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl-Umrechnungen Bin, Oct, Dec, Hex

Ein Thema von Morlon · begonnen am 15. Dez 2004 · letzter Beitrag vom 3. Jan 2005
Antwort Antwort
Seite 2 von 2     12   
Morlon
Registriert seit: 15. Dez 2004
Hi,
ich hab den Rechner bereits im Object-Pascal / Delphi-Language-Forum veröffentlicht und mit eurer Hilfe einige Dinge verbessert.
Das Programm kann Binär, Oktal, Dezimal und HexaDezimal hin und her rechnen wie man mag. Ich habs mit einigen Kommentaren versehen und die einzelnen Schritte, die dafür gemacht werden genau beschrieben.

Viel Spaß damit
Elmar
Angehängte Dateien
Dateityp: zip zahlwandler_187.zip (11,3 KB, 299x aufgerufen)
 
KLS

 
Delphi 7 Enterprise
 
#11
  Alt 3. Jan 2005, 17:55
Es ist ja nicht so das ich nicht schon eine lsg. dafür habe, nur ist die nicht gerade die beste *g*

hier mal ein bsp. wie die negativen zahlen aufgebaut sind. (shortint (-128 - 127))

bin = dec

0000 0000 = 0
0000 0001 = 1
...
0111 1111 = 127

1111 1111 = -1
1111 1110 = -2
...
1000 0000 = -128
Thomas H.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#12
  Alt 3. Jan 2005, 18:39
Zitat von KLS:
Es ist ja nicht so das ich nicht schon eine lsg. dafür habe, nur ist die nicht gerade die beste *g*

hier mal ein bsp. wie die negativen zahlen aufgebaut sind. (shortint (-128 - 127))

bin = dec

0000 0000 = 0
0000 0001 = 1
...
0111 1111 = 127

1111 1111 = -1
1111 1110 = -2
...
1000 0000 = -128
Das nennt sich 2er Kompliment

ich schrieb im obigen Beitrag
Anmerkung:
Kompliment ist das Negativ der Zahl: z.B. 00001001 -> 11110110
2er Kompliment ist das Kompliment der Zahl + 1 z.B. -> 00001001 -> 11110111


also
-1 = NOT(00000001)+1 = 11111111
-2 = NOT(00000010)+1 = 11111110
...

Dazu muß aber die Bitlänge bekannt sein. In Deinem Fall 8 Bit.

Was aber wenn Du eiene Variable bitlänge verwendest. z.B. ein paar Zahlen mit 12 Bits, dann ein paar mit 1.000 Bits, dann ein paar mit 100.000 Bits.

Um Dein Format zu verwenden müssten dann alle mit 100.000 Bit gespeichert werden.

z.B. -2 = -10 oder bei 8 Bit 11111110 oder bei 12 Bit 111111111110 oder bei 1.000 Bits 999 Einsen und eine Null.

Da macht es keinen Sinn.

Beim Hexadezimalsystem ist es doch das gleiche.

...
2 = 02
1 = 01
0 = 00
-1 = FF
-2 = FE
...

also
-0101 + 1110 = 1001

Es ist egal wie die Daten im Rechner abgelegt werden.
-05 + 0E = 09
Du schreibst ja auch nicht
FB + 0E = 09

Oder?

ps: der Rechner von MS Windows zeigt im wissenschaftlichen Modus bei negativen Zahlen das 2er Kompliment an, kann aber dann nicht wieder zurückwandeln:

-5 (dec) = 11111111111111111111111111111111111111111111111111 11111111111011 (bin)
aber
11111111111111111111111111111111111111111111111111 11111111111011 (bin) = 18446744073709551611 (dec)

Das ist doch nicht wirklich das was man will, oder?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:41 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