我需要将数据从十六进制传输到十进制。我得到的数据是一个字符串。有人可以帮忙吗?ST能做到吗?
谢谢。
Dec_data:= 'ABCD';
pVar := &iIntVar;
usiRes:= STR_TO_BIN(Dec_data, pVar, 'X');
strResult := BIN_TO_STR(pVar,'d');
结果是 STRING '43981'
data:= "005BE045";
j := 7.0;
result :=0.0;
FOR i:=1 TO 8 BY 1 DO
data2 := MID(data,L:=1,P:=i);
IF(data2 = '0') THEN
count := 0.0*(16.0**j);
ELSIF(data2 = '1') THEN
count := 1.0*(16.0**j);
ELSIF(data2 = '2') THEN
count := 2.0*(16.0**j);
ELSIF(data2 = '3') THEN
count := 3.0*(16.0**j);
ELSIF(data2 = '4') THEN
count := 4.0*(16.0**j);
ELSIF(data2 = '5') THEN
count := 5.0*(16.0**j);
ELSIF(data2 = '6') THEN
count := 6.0*(16.0**j);
ELSIF(data2 = '7') THEN
count := 7.0*(16.0**j);
ELSIF(data2 = '8') THEN
count := 8.0*(16.0**j);
ELSIF(data2 = '9') THEN
count := 9.0*(16.0**j);
ELSIF(data2 = 'A') THEN
count := 10.0*(16.0**j);
ELSIF(data2 = 'B') THEN
count := 11.0*(16.0**j);
ELSIF(data2 = 'C') THEN
count := 12.0*(16.0**j);
ELSIF(data2 = 'D') THEN
count := 13.0*(16.0**j);
ELSIF(data2 = 'E') THEN
count := 14.0*(16.0**j);
ELSIF(data2 = 'F') THEN
count := 15.0*(16.0**j);
END_IF;
j := j-1.0;
result:= result + count;
END_FOR;
astrDisplayText_20x4[4] := STR(result);
只有这样......我制作的新功能,这是可行的!你怎么看?