转二进制处理输入为0
来源:2-5 循环

慕斯6477199
2019-06-21
func convertToBin(n int) string {
result := ""
for ; n >= 0; n /=2 {
if n == 0 {
result = "0"
break
} else {
lsb := n % 2
result = strconv.Itoa(lsb) + result
}
}
return result
}
convertToBin(3)
convertToBin(5)
为什么输出都是0, n 不能大于>=0吗?
写回答
1回答
-
ccmouse
2019-06-26
你需要单步跟踪一下,就能发现原因。
这里是因为n不断的变小,最终总会变成0,从而触发
if n == 0 {
result = "0"
break可以把这段拉到循环外面。
00
相似问题