AGB  ·  Datenschutz  ·  Impressum  







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

Hexadezimal < > 8 bits

Ein Thema von stay · begonnen am 29. Mär 2017 · letzter Beitrag vom 2. Apr 2017
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#1

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 18:57
Und wenn man bedenkt, dass man einen Boolean auch als 0 für false und 1 für true sehen kann, was fällt Dir dann an Deiner "Binärzahl" auf?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
stay

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

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 19:50
Ja xD 8bit - 1 byte - 0,5 word.

Wollte nur sicher gehen, dass es mir wichtig ist 8 getrennte bits in einen byte zusammen zu führen für deinen link. Und das auch in der Richtigen Reihenfolge. Du siehst an meiner Lösung, dass ich es selbst nicht elegant lösen konnte :/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#3

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 20:12
Erstmal zu if Bit7.checked = true then .
Diese Konstanten sollte man immer nur für Zuweisungen, aber niemals für Vergleicher verwenden,
denn wie bereits bemerkt, besteht ein Delphi-Boolean intern aus einem Byte, wo es 1 Mal das False und 255 Mal ein True Nicht-False gibt.
und bei einem LongBool hast du den Spaß sogar mit 4.294.967.295 Mal dem "True".

i := i + 1;
Wenn man "Binär" rechnen will, dann natürlich mit binären Operatoren ala OR und AND und nicht mit arithmetischen Operatoren ala ADD (+),
denn B := B or $01; // oder 1 arbeitet immer richtig, aber ein B := B + $01; // oder 1 macht Probleme, wenn dieses Bit bereits gesetzt ist.
Aber dafür hast'e ja nun das Tutorial.

Delphi-Quellcode:
var B: Boolean;

B := Boolean(3); // die Variable könnte mal ausversehn mit einem "unschönen" True aus irgendeiner Funktion raus kommen.

if B = True then ShowMessage('Falsch: True');
if B = False then ShowMessage('Falsch: False');

if B then ShowMessage('Richtig: True');
if not B then ShowMessage('Richtig: False');

PS: TCheckListBox und eine For-Schleife über alle Bits/CheckBoxen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (29. Mär 2017 um 20:17 Uhr)
  Mit Zitat antworten Zitat
stay

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

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 20:51
Das macht natürlich Sinn. Hupps. Unabhängig von der Bit Verarbeitung, da muss ich mich erst mal reindenken. Kann ich in lazarus “relativ“ einfach ein byte in eine 2stellige hexadezimal Zahl umwandeln?
IntToHex( x,y ) war ja perfekt, direkt y für 2 Stellen nutzen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#5

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 21:03
Das sollte in Lazarus wie im Delphi funktionieren .... uralte APIs, das hatte Lazarus/FreePascal zu Beginn fast alles 1:1 übernommen.

Es gibt noch BinToHex (aber Achtung, da ist die Bytefolge anders)
und Format kann auch Hexadezimal.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Hexadezimal < > 8 bits

  Alt 29. Mär 2017, 21:05
Delphi-Quellcode:
const
  HX : array [0..15] of ansichar='0123456789ABCDEF';


function HXTRANS(ib:byte):ansistring;
begin
  result:=' ';
  result[1]:=HX[ib shr 4];
  result[2]:=HX[ib and $0F];
end;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
stay

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

AW: Hexadezimal < > 8 bits

  Alt 30. Mär 2017, 18:29
Das sieht sehr gut aus, damit bekomme ich aus 0xff ein byte mit 1111 1111 oder?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#8

AW: Hexadezimal < > 8 bits

  Alt 30. Mär 2017, 19:41
Das sieht sehr gut aus, damit bekomme ich aus 0xff ein byte mit 1111 1111 oder?
Nein?

Aus einem Byte mit $FF wird natürlich ein String mit 'FF'.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Hexadezimal < > 8 bits

  Alt 31. Mär 2017, 12:02
Das sieht sehr gut aus, damit bekomme ich aus 0xff ein byte mit 1111 1111 oder?
0xFF=0b11111111=255

warum kennen so viele die kleinsten Grundlagen nicht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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:01 Uhr.
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