AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

bit <---> word

Ein Thema von TeronG · begonnen am 16. Nov 2005 · letzter Beitrag vom 31. Mai 2007
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#11

Re: bit <---> word

  Alt 17. Nov 2005, 12:38
ahh ... cool danke

Die SHL-functionen von DAX gefallen mir aber die BitsToInt scheint nicht zu klappen

EDIT: ahh .. wenn ich die bit's umdrehe dann klapps (31=0, 30=1,...)
for i := High(Bits) downto 0 do habs einfach so gemach .. dann klappts wieder ^^
jetzt nur noch rausfinden warum's überhaupt geht
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: bit <---> word

  Alt 17. Nov 2005, 13:39
Zitat von Dax:
Das geht aber viel einfacher

Delphi-Quellcode:
function BitsToInt(Bits: array of Boolean): Integer;
var i: Integer;
begin
  Result := 0;
  for i := 0 to High(Bits) do
  begin
    if Bits[i] then
      Result := Result shl 1 or 1
    else
      Result := Result shl 1;
  end;
end;
und noch einfacher

Delphi-Quellcode:
begin
  Result := 0;
  for i := Low(Bits) to High(Bits) do
    Inc(Result, Result + Ord(Bits[i]));
end;
Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#13

Re: bit <---> word

  Alt 17. Nov 2005, 13:51
hier meine ^^ (die versteh ich sogar !!)
Delphi-Quellcode:
function TForm1.BitToWord(bits:TBitArray):Word;
var
  i : Integer;
begin
  result := 0;
  for i := low(bits) to high(bits) do if bits[i] then result := result + (1 shl i);
end;

function TForm1.WordToBit(eingang:Word): TBitArray;
var
  m,i : integer;
begin
  for i := 15 downto 0 do begin
    m:= 1 shl i;
    if eingang >= m then begin
      result[i] := true;
      eingang := eingang-m;
    end else result[i] := false;
  end
end;
Dank shl ganz ohne power(2,y), trunc, div & mod !!
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#14

Re: bit <---> word

  Alt 31. Mai 2007, 12:46
Dank himitsu's Post ist mir ne "bessere" Version von meinem 'WordToBit' eingefallen:

Delphi-Quellcode:
type TBitArray = array[0..15] of boolean;

...

function WordToBit(Eingang:Word): TBitArray;
var
  i : integer;
begin
  for i := 0 to 15 do Result[i] := (Eingang shr i) and 1 <> 0;
end;
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#15

Re: bit <---> word

  Alt 31. Mai 2007, 13:20
JCL to the rescue! JclLogic.pas hat alles was du brauchst und noch viel mehr.
  Mit Zitat antworten Zitat
31. Mai 2007, 13:55
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:53 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