int ux = ((dx > 0) << 1) - 1;//x的增量方向,取或-1
if ((eps << 1) >= dx)
主要是为了速度, 用位运算来代替 乘除计算,找本c的书,看看位运算吧 比如4,二进制 是 100 往左一位就是 1000, 变成乘以2 等于8 了 往右一位就是 10. 变成除以2,等于4 了 int ux = ((dx > 0) << 1) - 1;//x的增量方向,取或-1 ==> dx就是你所说x的增量吧 所以当dx>0的时候,dx>0是true 也是1, <<1 二进制往右移1位,也就是乘以2, 所以ux = 1 而dx<0的时候, ux = -1 (dx>0 是false 也是0) if ((eps << 1) >= dx) ==》就是判定 eps*2 》=dx
69,382
社区成员
243,073
社区内容
加载中
试试用AI创作助手写篇文章吧