我需要将数据从十六进制传输到十进制。数据我得到一个字符串。有人可以帮忙吗? ST是否有可能成功?
感谢。
答案 0 :(得分:1)
Dec_data:= 'ABCD';
pVar := &iIntVar;
usiRes:= STR_TO_BIN(Dec_data, pVar, 'X');
strResult := BIN_TO_STR(pVar,'d');
结果是STRING' 43981'
答案 1 :(得分:0)
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);
只有这样...我做的新功能,这是有效的!你觉得怎么样?