AGB  ·  Datenschutz  ·  Impressum  







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

Umrechnen von Zahlensystemen

Ein Thema von JP29 · begonnen am 27. Aug 2011 · letzter Beitrag vom 1. Sep 2011
Antwort Antwort
JP29

Registriert seit: 27. Aug 2011
45 Beiträge
 
Delphi 6 Personal
 
#1

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 09:45
mhhh naja, aber ich würd gern mal wissen warum er falsch rechnet, eigentlich stimmt doch die syntax

edit:
hab jetztnoch was entdeckt:
er versetzt immer eine null an die falsche stelle:
50 wären ja: 110010
programm rechnet: 011001
genau wie bei 12
12 wären: 1100
programm rechnet:0110

habt ihr vlt. ne idee woran das liegen könne!?

Geändert von JP29 (28. Aug 2011 um 09:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 10:23
Du merkst Dir den Wert des niederwertigsten Bits nicht, sondern dividierst sofort durch 2.
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
JP29

Registriert seit: 27. Aug 2011
45 Beiträge
 
Delphi 6 Personal
 
#3

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 10:35
ok, das versteh ich nicht so richtig,
könntest du mir das genauer erklären.
danke
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 11:01
Das allererste, was du machst, ist, durch zwei zu dividieren. Dadurch verlierst du schon ein "y" Wert.
Dh. du musst die Reihenfolge vertauschen:
y := x mod 2
x := x div 2

Edit
Zitat von himitsu:
Insert und fügst das c hinten ein.
hinten? Ach du hast es dir echt damit angetan...
Diesmal muss es aber vorne dran:
denn du müsstest folgendes aussagen, anstatt dieses
Zitat von JP29:
12 sind jetzt 0110 statt 0011.
12 sind jetzt 0110 statt 1100.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (28. Aug 2011 um 11:04 Uhr)
  Mit Zitat antworten Zitat
JP29

Registriert seit: 27. Aug 2011
45 Beiträge
 
Delphi 6 Personal
 
#5

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 11:10
ja jetzt funktioniert es,
vielen dank an alle von euch, dass ihr mir so geholfen habt.

Jetzt habe ich allerdings noch ein Problem beim umrechnen von binaer zu dezimal, und zwar rechnet er hier auch nicht richtig.
Könntet ihr mal bitte einen blick drauf werfen:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var n, result, y: Integer;
    x, s1, s2, s3, s4: String;
begin
 x:=(edit1.Text);
 n:=Length(x);
  if n=1 then
   begin
    y:=StrToInt(edit1.Text);
    result:=y*1;
    edit2.Text:=IntToStr(result);
   end;
  if n=2 then
   begin
    s1:=copy(x,2,2);
    s2:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2;
    edit2.Text:=IntToStr(result);
   end;
  if n=3 then
   begin
    s1:=copy(x,3,3);
    s2:=copy(x,2,2);
    s3:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4;
    edit2.text:=IntToStr(result);
   end;
  if n=4 then
   begin
    s1:=copy(x,4,4);
    s2:=copy(x,3,3);
    s3:=copy(x,2,2);
    s4:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4 + StrToInt(s4)*8;
    edit2.Text:=IntToStr(result);
   end;
  if n>4 then
   begin
    showmessage('Es können nur Zahlen mit max 4 Stellenumgerechnet werden.');
   end;


end;

oder habt ihr vlt einde idee, wie man das in einer schleife umsetzen kann, ohne diese if-Verschachtelung.

danke schon mal im vorraus.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 12:04
Du weist nirgendswo Werte den s1, .., s4 Variablen zu!

Mit ner Schleife ginge es evt. so (sollte auch für dich verständlich sein)
Delphi-Quellcode:
var
  binStr : String;
  binVal : Integer;
  decVal : Integer;
  i : Integer;
begin
  binStr := edit1.Text;
  decVal := 0;
  binVal := 1;
  for i := Length(binStr) downto 1 do
  begin
    if binStr[i] = '1then
      decVal := decVal + binVal;
    binVal := binVal * 2;
  end;
  edit2.Text := IntToStr(decVal);
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 12:10
Beitrag gecancelt, hatte die Frage falsch verstanden.

Geändert von Bjoerk (28. Aug 2011 um 12:24 Uhr) Grund: Cancel
  Mit Zitat antworten Zitat
JP29

Registriert seit: 27. Aug 2011
45 Beiträge
 
Delphi 6 Personal
 
#8

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 17:32
na doch ich kopiere doch immer einen teilstring aus dem gesamten string (der eingegeben wird) in die strings s1....s4 herein

und zur schleife, ich verstehe die syntax nicht und du hast ja auch eine if.verschachtelung, dass müsstest du mir bittenoch einmal erklären
  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 00:42 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 by Thomas Breitkreuz