Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl (https://www.delphipraxis.net/8519-umrechnen-bin-dez-dez-bin-ohne-shr-oder-shl.html)

Evian 8. Sep 2003 16:31

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
-> :lol: <-

ach ja nur zum schluss, falls noch mal jemand was zu TPascal fragt, das ergebniss von Funktionen kann da nicht mit Result angesprochen werden, sondern nur über den Funktionsnamen selbst.

Sharky 8. Sep 2003 21:08

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Zitat:

Zitat von Evian
...jemand was zu TPascal fragt, das ergebniss von Funktionen kann da nicht mit Result angesprochen werden, sondern nur über den Funktionsnamen selbst.

Hihi....


Stimmt.

Ich habe mein erstes Programm in TP 5.5 verkauft. (Damals für 5000 DM) leider habe ich einiges vergessen.

Aber Du hast recht.

[edit=Luckie]Quote-Tags gefixt. Mfg, Luckie[/edit]

maststef 13. Nov 2003 20:18

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
*alten Thread wieder hochkram*

Gibt es auch eine mathematische Formel (also kein Pascal-Code!) für die Umrechnung von Dezimal nach Binär?
Ich meine nicht die wo man immer durch zwei teilt und den Rest hinschreibt, sondern eine ganz allgemeine, die man auf eine Zeile schrieben kann.
Gibt's sowas?

negaH 13. Nov 2003 20:34

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Nein, da ja die Zahl so lange bis sie Null ist Ziffer für Ziffer zur Zielbasis umgewandelt werden muß. Somit benötigt man immer eine Schleife. Natürlich gibt es eine Mathematische Formel, nur auch diese umschreibt einen iterativen Algorithmus.

Hier noch eine Lösung ohne Divisionen oder Shiftoperatoren:
Delphi-Quellcode:
function IntToBIN(const Value: Cardinal): String;
const
  sDigits: array[Boolean] of Char = ('0', '1');
var
  I: Integer;
  Mask: Cardinal;
begin
  SetLength(Result, 32);
  Mask := 1;
  for I := 32 downto 1 do
  begin
    Result[I] := sDigits[Value and Mask <> 0];
    Inc(Mask, Mask);
  end;
end;
Gruß hagen

maststef 13. Nov 2003 20:53

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Zitat:

Natürlich gibt es eine Mathematische Formel, nur auch diese umschreibt einen iterativen Algorithmus
Na, das ist doch schonmal was. Kann die mal bitte jemand posten, oder einen Link hinschreiben? Danke :)

nilsi76 8. Mai 2007 11:47

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Hi Lucky,

ich hab mal ne Frage zu einem Post von dir, der schon einige Zeit her ist.


function IntToBin(Int: Integer): String;
var
i : Integer;
begin
Result := '';
for i := 7 downto 0 do
Result := Result + IntToStr((Int shr i) and 1);
end;


Es geht um die vorletzte Zeile.Es geht um den Befehl and 1.
Soweit meine ich alles verstanden zu haben, nur dieser Befehl gibt mir noch zu denken.
Die Funktion soll ja eine eigegebene Zahl vom Typ Integer in eine Binärzahl umwandeln. Die Funktion shr bewirkt, dass die umgewandelte Zahl um i Stellen nach rechts verschoben wird. Mir ist nur noch nicht klar, was das "and 1" zu bedeuten hat.
Wäre nett wenn du mir helfen könntest.

Mfg

Kristoffer

Jelly 8. Mai 2007 11:54

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
and macht eine Und-Bitverknüpfung, d.h. wenn 2 Zahlen an der gleichen Bitadresse eine 1 stehen haben, so wird im Ergebnis für diese Bitstelle eine 1 ausgegeben. Ist nur einer der beiden Bitadressen null (oder beide), so wird 0 ausgegeben.

bsp:

5 = 0101
12 = 1100

5 and 12 =
0101 and
1100 =
0100 = 4

5 and 12 = 4

marabu 8. Mai 2007 12:02

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Herzlich willkommen in der Delphi-PRAXiS, Kristoffer.

Durch "i AND 1" werden effektiv alle bis auf das niederwertigste Bit von i ausgeschaltet. Genauso schaltest du mit "i OR 1" das niederwertigste Bit ein, falls es nicht schon eingeschaltet ist.

Freundliche Grüße

nilsi76 8. Mai 2007 12:23

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Ja die Frage ist nur warum brauche ich das in diesem Beispiel?

Trotzdem schonmal danke für die Antwort.

marabu 8. Mai 2007 12:25

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Weil du die Bits in i einzeln betrachten möchtest. Du schiebst sie bitweise mit "shr 1" nach "rechts" und schaltest dann alle außer dem am weitesten "rechts" stehenden Bits aus, so dass du im Einzelfall nur noch 0 oder 1 erhältst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.
Seite 3 von 6     123 45     Letzte »    

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