AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Thema durchsuchen
Ansicht
Themen-Optionen

Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

Ein Thema von Evian · begonnen am 6. Sep 2003 · letzter Beitrag vom 6. Nov 2007
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#21

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

  Alt 8. Sep 2003, 16:31
-> <-

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.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#22

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

  Alt 8. Sep 2003, 21:08
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]
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
maststef

Registriert seit: 10. Jul 2003
16 Beiträge
 
#23

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

  Alt 13. Nov 2003, 20:18
*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?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#24

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

  Alt 13. Nov 2003, 20:34
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
  Mit Zitat antworten Zitat
maststef

Registriert seit: 10. Jul 2003
16 Beiträge
 
#25

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

  Alt 13. Nov 2003, 20:53
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
  Mit Zitat antworten Zitat
nilsi76

Registriert seit: 8. Mai 2007
2 Beiträge
 
#26

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

  Alt 8. Mai 2007, 11:47
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
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#27

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

  Alt 8. Mai 2007, 11:54
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#28

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

  Alt 8. Mai 2007, 12:02
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
  Mit Zitat antworten Zitat
nilsi76

Registriert seit: 8. Mai 2007
2 Beiträge
 
#29

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

  Alt 8. Mai 2007, 12:23
Ja die Frage ist nur warum brauche ich das in diesem Beispiel?

Trotzdem schonmal danke für die Antwort.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#30

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

  Alt 8. Mai 2007, 12:25
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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 09:07 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