AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Bit-Manipulation

Ein Thema von Panschi · begonnen am 9. Sep 2011 · letzter Beitrag vom 9. Sep 2011
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#1

Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:40
Delphi-Version: 5
Hallo Forum,
Ich bin gerade dabei ein Übungsprogramm zu schreiben um die Manipulation von Zahlen mit Hilfe der Bit-Befehle (OR, AND, XOR etc.) in Delphi umzusetzen und zu verstehen. Soweit klappen auch alle Befehle, nur beim NOT Befehl hab ich meine Schwierigkeiten.
(Habe 2 Edit eingabefelder - EdtEingabe, EdtEingabe2 - und für jede Bit Operation einen Button)
Hier mein Quelltext:

Delphi-Quellcode:
procedure TForm1.BtnClick(Sender: TObject);
var Ergebnis: Integer;
    hilfswert: Integer;

begin
  Eingabe := StrToInt(EdtEingabe.Text);
  Eingabe2 := StrToInt(EdtEingabe2.Text);

  if Sender = BtnNot then
  begin
    Ergebnis := NOT Eingabe; //?????
    LblErgebnis.Caption := IntToStr(Ergebnis);
  end;

  if Sender = BtnAnd then
  begin
    Ergebnis := eingabe AND eingabe2;
    LblErgebnis.Caption := IntToStr(Ergebnis);
  end;

  if Sender = BtnOR then
  begin
    Ergebnis := Eingabe OR Eingabe2;
    LblErgebnis.Caption := IntToStr(Ergebnis);
  end;

  if Sender = BtnXOR then
  begin
    Ergebnis := Eingabe XOR Eingabe2;
    LblErgebnis.Caption := IntToStr(Ergebnis);
  end;

  if Sender = BtnShl then
  begin
    hilfswert := StrToInt(InputBox('SHL', 'Geben sie einen Wert für die SHL Funktion ein', '2'));
    Ergebnis := Eingabe SHL hilfswert;
    LblErgebnis.Caption := IntToStr(Ergebnis);
    EdtEingabe2.Text := '0';
  end;

  if Sender = BtnShr then
  begin
    hilfswert := StrToInt(InputBox('SHR', 'Geben sie einen Wert für die SHR Funktion ein', '2'));
    Ergebnis := Eingabe SHR hilfswert;
    LblErgebnis.Caption := IntToStr(Ergebnis);
    EdtEingabe2.Text := '0';
  end;
end;
Hoffe es ist nicht ein allzu dummer fehler
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:42
Und was soll da jetzt falsch sein?
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
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:44
Bei dem NOT befehl gibt er mir die Eingabe um 1 erhöht nur negativ aus

Quasi Eignabe: 4
Ausgabe: -5
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben

Geändert von Panschi ( 9. Sep 2011 um 08:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:46
Und was hast Du erwartet? Bekommst Du das gewünschte Ergebnis, wenn Du nicht integer, sondern Cardinal nimmst?
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
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#5

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:49
Cardinal bewirkt das gleiche Ergebnis...

Aber wenn ich das richtig verstanden habe, dann müsste bei 4 (also 0100), 11 (1011) herauskommen oder?
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:49
Und was ist mit den restlichen 28 Bit?

[edit] Nochmal zum Verständnis:
Code:
//integer = 32 Bit
00000000000000000000000000000100 // = 4
11111111111111111111111111111011 // = not 4
[/edit]
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

Geändert von DeddyH ( 9. Sep 2011 um 08:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#7

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:53
hm... dann wäre die 4 ja 0000 0000 0000 0000 0000 0000 0000 0100 und bei NOT würde dann 1111 1111 1111 1111 1111 1111 1111 1011 herausbekommen... das wäre dann ja doch ein bisschen größer als erwartet
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#8

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:55
das wäre 16 777 211
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 08:57
Sicher?

[edit] Du musst Dich schon auf den gewünschten Zahlenbereich einschränken, indem Du entweder einen anderen Datentyp nimmst oder mit einer Konstanten ver"and"est. [/edit]
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
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#10

AW: Problem mit Bit-Manipulation

  Alt 9. Sep 2011, 09:00
2^31 = 2 147 483 648 okay
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:35 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