FORi:=(dbbyte+(size-1))TOdbbyteBY-1DO
remainder:=nMODbASe;
IFremainder<=9THEN
WORD_TO_BLOCK_DB(INDEX).db[i]:=CHAR_TO_BYTE(int_TO_CHAR(remainder+48));
ELSE
WORD_TO_BLOCK_DB(INDEX).db[i]:=CHAR_TO_BYTE(INT_TO_CHAR(remainder–10+65));
问题补充:
对于以上十进制转换ASC码的语句想了解下remainder:=nMODbase;是不是n/base的余数,其中base:=10;n:=num;
还有就是remainder–10+65是不是为了处理10及以上的数转换为A-Z如果有对数据处理或算法感兴趣的可以与我联系,希望共同进步~
最佳答案
1、mod就是取模运算符,也就是结果为余数;高级语言里面基本都这种语法(也有采用%)
2、ASCII字符本身存储的时候就是ascii码而已
以上问题你都可以采用PLCsim进行测试得到验证结果
提问者对于答案的评价:
非常感谢,游泳哥的解答,希望有空可以发个邮件到我邮箱,315502374@qq.com我即将进行一个大型系统的安调,里面包括安全、冗余等;网络涉及PN、DP、ASI,现在正在消化资料~