我需要实现一个函数 toBase(a,b) ,其中 'b' 是需要转换为 groovy 中的基数 'a' 的值。需要有关此功能的帮助。
包含从 0 到 Z 的数字和字母的字符串,涵盖基数高达 36 的基本系统。
while 循环不断地将 b 除以 a,计算余数,并使用该余数从digits 中获取相应的数字。该过程一直持续到 b 变为零。
通过将每个数字添加到结果字符串前面来反向构建结果。
def toBase(a, b) {
if (a < 2 || a > 36) {
throw new IllegalArgumentException("Base must be between 2 and 36")
}
String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def result = ""
while (b > 0) {
int remainder = b % a
result = digits[remainder] + result
b = b.intdiv(a)
}
return result == "" ? "0" : result
}
println toBase(2, 255) // Binary representation of 255 -> 11111111
println toBase(16, 255) // Hexadecimal representation of 255 -> FF