回 帖 发 新 帖 刷新版面

主题:有没有类似c语言,强制转换为字节的函数?

请教:
InByte(5) = (InByte(1) + InByte(2) + InByte(3) + InByte(4)) Mod 256
提示溢出,
我的本意是232c通讯累加和
有没有类似c语言,强制转换为字节的函数?

回复列表 (共5个回复)

沙发

新来的,新手,请多关照

板凳

有的:CByte

3 楼

从楼主的赋值语句猜测,InByte数组是“字节(byte)”类型的。
计算(InByte(1) + InByte(2) + InByte(3) + InByte(4)) 时,首先开辟一个临时变量,类型与第一个要使用的变量相同。这里四个字节变量的和很可能超出字节变量的计数范围造成溢出。

4 楼

InByte(5) = ((InByte(1) + InByte(2) + InByte(3) + InByte(4)) Mod &h100) and &hff&

5 楼

谢谢大家,问题已解决:
        InByte(5) = (CLng(InByte(1)) + CLng(InByte(2)) + CLng(InByte(3)) + CLng(InByte(4))) Mod 256

我来回复

您尚未登录,请登录后再回复。点此登录或注册