[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
还好你的帖子解锁了
就在此回复吧

if的数值比较与其它语言是一样的原理
核心都是减法运算
根据减法的差值判定大小
差值为正就是大于
为负就是小于
为零就是等于
而差值本身也是变量
也需要存储
也存在所有32位的双字值都有的-2^31~2^31-1的限定
因为3 - (-2147483645) 的结果超界
结果本来的正值变成负值(不完全是溢出)
本来的大于就变成了小于了

大正数的溢出问题
实际上是因为for /l本身含有加法运算
而你所设置的下限2147483647
是32位整数的最大值
在加1就成为负值
所以你的for的永远不会超限
成了“死循环”
天的白色影子

TOP

返回列表