为什么单片机发送到vb的数据超过128就溢出了
--------------------编程问答-------------------- 因为VB是一种很业余的语言,你不能用程序员的思维去理解。比如Mid函数,它是从1开始的。比如
s = "Hello"
Mid(s, 1, 1) = "H" --------------------编程问答--------------------
问题分析得没错,For j 循环应该从 Len(B) 到 1。
====分割线====
扯蛋!!!
字符串从“第1个字符”开始数才是符合自然习惯的。
只有字符串和字符数组都不能区分的人才会觉得“第0个字符串”是美化的。
想象一下用caozhy的完美数组来定义楼层:
A楼没有地下室,所以进门就是第0层。
B楼地下1层,所以进门就是第1层。
C楼地下2层,所以进门就是第2层。
……
保佑你就住在这样的小区吧! --------------------编程问答-------------------- 后面转十进制的程序不说,直接接收16进制到80也溢出了,这是为什么呢? --------------------编程问答--------------------
k = k + (16 ^ j) * x
16 ^ 8 就溢出了,更不要说还要做乘法。 --------------------编程问答-------------------- 四个字节,最多到16的四次,关键是16进制到255就溢出 --------------------编程问答-------------------- 溢出与前后数据相关!
你到底在说什么?
输入 A 是什么内容?
B 是什么内容?
出错位置?
出错时 j,k,x 的值?
--------------------编程问答-------------------- 这样改一下试试:
Dim y As Long
'......
y = 16
y = y ^ j
y = x * y
k = k + y
VB 在解释执行时,是从后向前进行的。中间过程凡是不确定类型的,就缺省认为是 Integer。最后赋值时,会进行自动的类型转换。
因此,很可能在中间过程已经溢出了。
补充:VB , 基础类