Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Informationen aus Byte (https://www.delphipraxis.net/84652-informationen-aus-byte.html)

eisbar 19. Jan 2007 15:14


Informationen aus Byte
 
Hallo
mein Problem leigt darin das ich den Datentyp Byte habe und nun wissen möchte ob an der letzten Stelle eine 1 oder eine 0 steht? Gibt es eine Möglichkeit die 1en und 0en als string auszugeben??

mfg Eisbar

3_of_8 19. Jan 2007 15:22

Re: Informationen aus Byte
 
Delphi-Quellcode:
function LastBitSet(b: Byte): Boolean;
begin
  Result:=Boolean(b and 1);
end;
Delphi-Quellcode:
function BinToStr(b: Byte): String;
var I: Integer;
begin
  setlength(result, 8);
  for I:=0 to 7 do
    result[I+1]:=chr((b shr (7-I)) and 1+48);
end;

Christian Seehase 19. Jan 2007 15:23

Re: Informationen aus Byte
 
Moin Eisbar,


Delphi-Quellcode:
ShowMessage(IntToStr(bValue mod 2));

3_of_8 19. Jan 2007 15:26

Re: Informationen aus Byte
 
Ein mod ist doch deutlich langsamer als ein and, oder?

shmia 19. Jan 2007 16:22

Re: Informationen aus Byte
 
Hier mal eine Funktion aus der JCL (eine wahre Schatzkammer):
Delphi-Quellcode:
// Auszug aus Unit JclLogic.pas
// [url]http://sourceforge.net/projects/jcl[/url]
const
  // Constants defining the number of bits in each Integer type
  BitsPerByte    = 8;
type
  TBitRange = Byte;
function TestBit(const Value: Byte; const Bit: TBitRange): Boolean;
begin
  Result := (Value and (1 shl (Bit mod BitsPerByte))) <> 0;
end;
Mit TestBit kann man jedes Bit prüfen:
Delphi-Quellcode:
if TestBit(meinByte, 7) then ShowMessage('höchstwertiges Bit gesetzt');

eisbar 19. Jan 2007 16:30

Re: Informationen aus Byte
 
Vielen Dank
das funktioniert alles super. Jetzt habe ich aber ein weiteres Problem. Ich habe einen string der sieht ca. so aus: 01100100 und möchte diesen jetzt in einem Byte speichern. Wie sieht solch eine Funktion aus?

jmd anders 19. Jan 2007 16:33

Re: Informationen aus Byte
 
wie wärs mit: erst ins dezimal system umwandeln? such einfach bei google
gibt echt viele beispiele

JasonDX 19. Jan 2007 16:38

Re: Informationen aus Byte
 
Zitat:

Zitat von jmd anders
wie wärs mit: erst ins dezimal system umwandeln? such einfach bei google

Oder in der CodeLib: *klick*

greetz
Mike

Hawkeye219 19. Jan 2007 20:41

Re: Informationen aus Byte
 
Hallo,
Zitat:

Zitat von eisbar
mein Problem leigt darin das ich den Datentyp Byte habe und nun wissen möchte ob an der letzten Stelle eine 1 oder eine 0 steht? Gibt es eine Möglichkeit die 1en und 0en als string auszugeben??

Um zu prüfen, ob eine Ganzzahl ungerade ist, bietet die Sprache PASCAL seit den ersten Versionen die Standardfunktion Odd() an.

Gruß Hawkeye

Khabarakh 19. Jan 2007 21:06

Re: Informationen aus Byte
 
Zitat:

Zitat von jmd anders
wie wärs mit: erst ins dezimal system umwandeln?

Könnte man, aber wozu denn? Das Simpelste ist es doch wohl, 3_of_8s Methode einfach umzukehren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz