【 以下文字转载自 Programming 讨论区 】
发信人: wuduan2 (wuduan2), 信区: Programming
标 题: 我被AI害得不轻
发信站: 水木社区 (Mon Jun 15 23:30:06 2026), 站内
我不是程序员,水平有限,不知道下面这个问题。
但AI找问题找了这么多遍也找不到,不应该啊。
vb.net
最近在编一个图像处理程序,输入图像是8位的时候正常,输入12位(占16位)时不正常
图像处理程序用了AI给的代码
让AI反复查错修改都不行,虽然每次都给出一大堆话和具体修改意见
visual studio中copilot用的是gpt 5.3-codex,trae中用的是auto模式
我自己编的一段程序处理就没问题,AI编的就有问题
关键区别是我自己编的是把图像放16位数组里,而AI编的是放byte数组,然后运算时移位
所以我就怀疑错误在移位操作那里。
最后我用这段代码进行测试:
Dim aaa As Byte = 1
Dim ccc As Integer
ccc = CInt(aaa << 8)
tOut.Text = ccc.ToString()
我得到的结果是1。
然后我就问ai,明确告诉是vb.net。
豆bao非得说aaa<<8会先提升到integer,然后再移位,所以会得到256。
我说得到的是1,豆包说必然输出256,说什么是我程序缓存问题、其他控件或代码导致的、我打错了、我拷贝错了等等等等,各种话术,就差点说我撒谎了。
trae开始也说这个代码会输出256。但当我说得到1后,没这么耍赖,说可能对 Byte 类型的位移运算进行了特殊处理,导致位移结果被截断或优化掉了。
copilot开始也回答会得到256,因为图像处理那个错误代码就是它给的。但当我说为什么得到1后,马上给出了正确解答:vb中移位时会对移位的位数按数据字节数取模。
--
FROM 202.98.17.*