数学基础运算示例
import std.math.clamp
import std.math.gcd
import std.math.lcm
import std.math.rotate
// 范围截断示例
func clampTest() {
let min: Float16 = -0.123
let max: Float16 = 0.123
let v: Float16 = 0.121
let c = clamp(v, min, max)
println("${c==v}")
let min2: Float16 = -0.999
let max2: Float16 = 10.123
let v2: Float16 = 11.121
let c2 = clamp(v2, min2, max2)
println("${c2==max2}")
let min3: Float16 = -0.999
let max3: Float16 = 10.123
let v3: Float16 = -1.121
let c3 = clamp(v3, min3, max3)
println("${c3==min3}")
}
// 求两个数的最大公约数
func gcdTest() {
let c2 = gcd(0, -60)
println("c2=${c2}")
let c4 = gcd(-33, 27)
println("c4=${c4}")
}
// 求两个数的最小公倍数
func lcmTest() {
let a: Int8 = lcm(Int8(-3), Int8(5))
println("a=${a}")
}
// 整数按二进制某一位前后翻转
func rotateTest() {
let a: Int8 = rotate(Int8(92), Int8(4))
println("a=${a}")
let b: Int32 = rotate(Int32(1), Int8(4))
println("b=${b}")
}
main(): Unit {
println("/*********************** clampTest **********************/")
clampTest()
println("/*********************** gcdTest ************************/")
gcdTest()
println("/*********************** lcmTest ************************/")
lcmTest()
println("/*********************** rotateTest *********************/")
rotateTest()
}
运行结果:
/*********************** clampTest **********************/
true
true
true
/*********************** gcdTest ************************/
c2=60
c4=3
/*********************** lcmTest ************************/
a=15
/*********************** rotateTest *********************/
a=-59
b=16