-> Hier kostenlos registrieren
Hallo zusammen,
ich möchte eine Dezimalzahl in eine 25 stellige Binärzahl umwandeln. Mein Programm schaut folgendermaßen aus:
VAR
index_dez_to_bin : DINT;
result_devision : DINT;
rest_devision : DINT;
complete_b : ARRAY[0..22,0..0] OF STRING;
example_wert : DINT;
END_VAR;
rest_devision :=example_wert MOD 2;
WHILE rest_devision>0 AND index_dez_to_bin<=25 DO
IF rest_devision=1 THEN
complete_b[index_dez_to_bin,0] :='1';
ELSE
complete_b[index_dez_to_bin,0] :='0';
END_IF;
index_dez_to_bin :=index_dez_to_bin+1;
result_devision :=result_devision/2;
rest_devision :=result_devision MOD 2;
END_WHILE;
Trotzdem liefert er mir einen abnormalen Wert. Wenn ich in der Variablentabelle den dementsprechenden ARRAY-Wert binär darstelle liefert er mir immer : 2#1111_1110_0000_0001_0011_0001_0000_0000. Die ersten 4 Bits geben nach STEP7-Hilfe das Vorzeichen vor. Aber auch der Rest stimmt ja net, was mache ich falsch? Binär sollte eigentlich: 10000101111 rauskommen. Vielen Dank für eure Hilfe!
ich möchte eine Dezimalzahl in eine 25 stellige Binärzahl umwandeln. Mein Programm schaut folgendermaßen aus:
VAR
index_dez_to_bin : DINT;
result_devision : DINT;
rest_devision : DINT;
complete_b : ARRAY[0..22,0..0] OF STRING;
example_wert : DINT;
END_VAR;
rest_devision :=example_wert MOD 2;
WHILE rest_devision>0 AND index_dez_to_bin<=25 DO
IF rest_devision=1 THEN
complete_b[index_dez_to_bin,0] :='1';
ELSE
complete_b[index_dez_to_bin,0] :='0';
END_IF;
index_dez_to_bin :=index_dez_to_bin+1;
result_devision :=result_devision/2;
rest_devision :=result_devision MOD 2;
END_WHILE;
Trotzdem liefert er mir einen abnormalen Wert. Wenn ich in der Variablentabelle den dementsprechenden ARRAY-Wert binär darstelle liefert er mir immer : 2#1111_1110_0000_0001_0011_0001_0000_0000. Die ersten 4 Bits geben nach STEP7-Hilfe das Vorzeichen vor. Aber auch der Rest stimmt ja net, was mache ich falsch? Binär sollte eigentlich: 10000101111 rauskommen. Vielen Dank für eure Hilfe!