组输入信号为整数,若希望将整数转化为二进制显示,可以使用bytetostr函数,输出为字符串,输入***大为255.
pers string s1:="11111111";
s1:=ByteToStr(255\Bin);
2. 若输入数据大于1个byte,切希望直接将整数转化为2进制,并赋值到一个数组中,如何实现?
3. 可以利用bitanddnum函数,将原数据与2^(i-1)数据做与运算,如果结果大于0,则该位为1,结果等于0,该位是0
4. 代码如下
PERS num a10{10}:=[1,1,1,1,1,1,1,1,0,0];
VAR num ginput:=255;
PROC test222()
s1:=ByteToStr(255\Bin);
ginput:=255;
num2bit ginput,a10;
!将判断结果放入a10数组
ENDPROC
PROC num2bit(num data,inout numout{*})
VAR dnum d1;
d1:=NumToDnum(data);
FOR i FROM 1 TO dim(out,1) DO
IF bitanddnum(d1,numtodnum(pow(2,i-1)))>0 THEN
out{i}:=1;
ELSE
out{i}:=0;
ENDIF
ENDFOR
ENDPROC