AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bits

Ein Thema von Rangarig · begonnen am 9. Jan 2005 · letzter Beitrag vom 10. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Rangarig

Registriert seit: 7. Jan 2005
Ort: Jena
9 Beiträge
 
Delphi 5 Standard
 
#1

Bits

  Alt 9. Jan 2005, 17:05
Hi,

ich habe ein Prblem mit Bits. Ich weiß nicht so genau, wie man rausfinden kann, ob ein Bit gesetzt ist oder nicht.

Vieleicht kennt jemand ein gutes Tut über soetwas.

Thx & Mfg
René
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bits

  Alt 9. Jan 2005, 17:24
Delphi-Quellcode:
function TestBit(Value : byte; bit : byte) : boolean;
begin
  if (Value AND (1 shl bit )) = (1 shl bit) then
    result := true
  else
    result := false;
end;
Sollte so gehen...

Ansonsten guck dir mal die Befehle "AND", "OR", "NOT" an...
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Rangarig

Registriert seit: 7. Jan 2005
Ort: Jena
9 Beiträge
 
Delphi 5 Standard
 
#3

Re: Bits

  Alt 9. Jan 2005, 18:36
Danke Nightshade.

das werde ich gleich ausprobieren. Die Befehle "AND", "OR", "NOT", etc kenne ich. Habe ich schon in abfragen benutzt. Ich wusste nur nicht, wie die als Bit-Abfrage benutz werden.
René
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Bits

  Alt 9. Jan 2005, 18:53
ginge es nich auch kürzer so?

Delphi-Quellcode:
function TestBit(Value : byte; bit : byte) : boolean;
begin
  result:=(Value AND (1 shl bit )) = (1 shl bit);
end;
ich hätte es jetzt spontan so gemacht:

Delphi-Quellcode:
function TestBit(Value : byte; bit : byte) : boolean;
begin
  result:=(Value and (1 shl bit))<>0;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Rangarig

Registriert seit: 7. Jan 2005
Ort: Jena
9 Beiträge
 
Delphi 5 Standard
 
#5

Re: Bits

  Alt 9. Jan 2005, 19:20
So wie Nightshade es im Beispiel gezeigt hat, habe ich es nicht hinbekommen. Ich habe es jetzt nachdem ich ein Beispiel hatt so gemacht:

Delphi-Quellcode:
function TestBit(Value : byte; bit : byte) : boolean;
begin
   result := ((Value AND bit) = bit));
end;
Jetzt hat sich mir ncoh eine Frage gestellt, weiß jemand, wie ich eine Konstante gleich Binär angeben kann? Bei Hexadezimal weiß ich es, aber nicht binär;
René
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Bits

  Alt 9. Jan 2005, 19:23
das kann so aber net funzen, oder?

hast du das mal getestet?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Rangarig

Registriert seit: 7. Jan 2005
Ort: Jena
9 Beiträge
 
Delphi 5 Standard
 
#7

Re: Bits

  Alt 9. Jan 2005, 19:24
Ja das habe ich so getestet läuft ohne Probleme.
René
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#8

Re: Bits

  Alt 9. Jan 2005, 19:28
nein, es ist falsch!!!

ich hab 2er potenzen eingegeben -> genau 1 bit true

es müsste so sein:

1 1
2 2
4 3
8 4
16 5
32 6

es ist aber laut deiner procedure so:

1 1
2 2
4 4
8 8
16 16
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#9

Re: Bits

  Alt 9. Jan 2005, 19:40
Okya, um das ganze etwas einfacher zu machen:
Delphi-Quellcode:
function BitSet(Value: Byte; BitCnt: Byte): Boolean;
begin
  Result := (( Value AND Round ( power (2, BitCnt-1) )) = Round ( power (2, BitCnt-1) ));
end;
Beispiel:
Delphi-Quellcode:
  if BitSet (24, 4) then // TestBit (00011000, 00001000)
    ShowMessage ('Ja!');
if BitSet (24, 5) then // TestBit (00011000, 00010000)
ShowMessage ('Ja!');[/delphi]
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Bits

  Alt 9. Jan 2005, 19:42
aber das is so lang

das funzt:

Delphi-Quellcode:
function TestBit(Value : byte; bit : byte) : boolean;
begin
   result:=(Value AND (1 shl bit )) = (1 shl bit);
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:40 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