Einzelnen Beitrag anzeigen

stay

Registriert seit: 5. Mär 2017
20 Beiträge
 
#1

Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 19:20
Hallo

ich bin zwar immer noch an meiner GUI dran, muss jedoch nebenbei auch an der Funktion arbeiten.

Ich habe 8 Bits in eine Hexadezimalzahl umgewandelt und umgekehrt, es funktioniert, aber es gefällt mir überhaupt nicht. Würdet ihr euch mal kurz meine 2 Funktionen angucken und mir helfen sie zu verbessern?

Die checkbox ist hierbei als bit zu sehen. die hexadezimal ist immer 2-stellig.

Zitat:
i := 0;
if Bit7.checked = true then i := i +1;
if Bit6.checked = true then i := i +2;
if Bit5.checked = true then i := i +4;
if Bit4.checked = true then i := i +8;
if Bit3.checked = true then i := i +16;
if Bit2.checked = true then i := i +32;
if Bit1.checked = true then i := i +64;
if Bit0.checked = true then i := i +128;
Label1.Caption:='Int-Wert: ' + inttostr(i);
h := 'i2cset -y 1 0X24 0x' + inttohex(i,2);
Zitat:
i := strtoint(string HEX);
if i >= 128 then
begin Bit10.checked := true; i := i-128; end
else Bit10.checked := false;
if i >= 64 then
begin Bit11.checked := true; i := i-64 end
else Bit11.checked := false;
if i >= 32 then
begin Bit12.checked := true; i := i-32 end
else Bit12.checked := false;
if i >= 16 then
begin Bit13.checked := true; i := i-16 end
else Bit13.checked := false;
if i >= 8 then
begin Bit14.checked := true; i := i-8 end
else Bit14.checked := false;
if i >= 4 then
begin Bit15.checked := true; i:= i-4 end
else Bit15.checked := false;
if i >= 2 then
begin Bit16.checked := true; i := i-2 end
else Bit16.checked := false;
if i >= 1 then Bit17.checked := true
else Bit17.checked := false;
Bitte nicht auslachen, mir gefällt es selbst nicht.

Danke
  Mit Zitat antworten Zitat