Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mit Bytes rechenen (https://www.delphipraxis.net/27838-mit-bytes-rechenen.html)

fredel007 16. Aug 2004 13:25


mit Bytes rechenen
 
hi,

ich suche nach einer möglichkeit Bytes zu halbieren

Delphi-Quellcode:
procedure xxxxx
var
  x: Byte;
begin
  x:=16;
  x:=x/2;
end;
aber x:=x/2; geht ja nicht!
gibt es da einen befehl wie z.B IntToStr ?(????ByteToFloat?????)


gruß freddy

Dannyboy 16. Aug 2004 13:33

Re: mit Bytes rechenen
 
Servus, um Halbbytes zu bekommen shiftest Du am besten die Bits mit shl und shr
(shift-left und shift-right).
Beispiel für kleines Halbbyte:
Z.B.:
Delphi-Quellcode:
var a,b : byte;
b:= 255;
a:= b shl 4;
Check this out.
DANNYBOY

StefanDP 16. Aug 2004 13:34

Re: mit Bytes rechenen
 
wie wärs mit
Delphi-Quellcode:
x := x div 2;
stefan

Dannyboy 16. Aug 2004 13:41

Re: mit Bytes rechenen
 
Es gibt auch noch diese Möglichkeit:
Delphi-Quellcode:
var a,b : byte;
//...
Großes Halbbyte:
a:= (b AND 240); // 240 = 1111 0000
Kleines Halbbyte:
a:= (b AND 15); // 15  = 0000 1111
Hier kannst Du Dir beide Halbbytes raussuchen und
nicht nur den unteren Teil.
DANNYBOY

Nachtrag:
Möchtest Du die Bytes einfach durch zwei teilen (siehe StefanDP)
oder möchtest Du die Bytes in zwei Halbbytes halbieren?

Boombuler 16. Aug 2004 14:45

Re: mit Bytes rechenen
 
wenn du dabei abrunden willst kannst du auch einfach:

Delphi-Quellcode:
x := x shr 1;
nehmen

damit wird:

00011011 zu 00001101


MfG
Boombuler

Muetze1 16. Aug 2004 16:08

Re: mit Bytes rechenen
 
Moin!

Zitat:

Zitat von Boombuler
wenn du dabei abrunden willst kannst du auch einfach:

Delphi-Quellcode:
x := x shr 1;
nehmen

damit wird:

00011011 zu 00001101


MfG
Boombuler

Was dann das gleiche wäre wie
Delphi-Quellcode:
 x := x div 2;
nur schneller, da das bitweise shiften schneller ist...

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 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