整除代码分享,补充底层功能
2022/04/19104 浏览游戏开发攻略
begincodeV2
name:int_division
comment:整除
params:Long dividend,Long divisor
return:Long quotient
lines:
1:if{fun long.equal(var divisor:Long 0)
2: Long quotient=fun create.long(Long 0)
3: fun break()
}
4:Bool negative_0=fun long.lt(var dividend:Long 0)
5:if{fun create.bool(var negative_0)
6: Long dividend=varf Long.dividend.abs()
}
7:Bool negative_1=fun long.lt(var divisor:Long 0)
8:if{fun create.bool(var negative_1)
9: Long divisor=varf Long.divisor.abs()
}
10:if{fun long.lt(var dividend:var divisor)
11: Long quotient=fun create.long(Long 0)
12: fun break()
}
13:Long quotient=fun create.long(Long 0)
14:while{fun long.gt(var dividend:var divisor)
15: Long quotient_new=fun create.long(Long 1)
16: Long tempdivisor=fun create.long(var divisor)
17: Long tempdivisor_mul=fun long.LeftShift(var tempdivisor:Long 1)
18: while{fun long.lte(var tempdivisor_mul:var dividend)
19: Long tempdivisor=fun create.long(var tempdivisor_mul)
20: Long tempdivisor_mul=fun long.LeftShift(var tempdivisor:Long 1)
21: Long quotient_new=fun long.LeftShift(var quotient_new:Long 1)
}
22: varf Long.quotient.addEqual(var quotient_new)
23: varf Long.dividend.minusEqual(var tempdivisor)
}
24:if{fun bool.xor(var negative_0:var negative_1)
25: Long quotient=fun long.multiply(var quotient:Long -1)
}
endcode