Vb.net 逻辑正确,但输出不正确
它是一个将十进制转换为二进制的函数。它没有正确地将值转换为二进制。这将为19提供Vb.net 逻辑正确,但输出不正确,vb.net,Vb.net,它是一个将十进制转换为二进制的函数。它没有正确地将值转换为二进制。这将为19提供10101,而不是10011。如何纠正呢 Function Binary(n As Integer) If n = 0 Or n = 1 Then Console.Write(n) Else Binary(n / 2) Console.Write(n Mod 2) End If End Function Sub Main() Dim n
10101
,而不是10011
。如何纠正呢
Function Binary(n As Integer)
If n = 0 Or n = 1 Then
Console.Write(n)
Else
Binary(n / 2)
Console.Write(n Mod 2)
End If
End Function
Sub Main()
Dim n As Integer
Console.Write("Enter Number: ")
n = Console.ReadLine()
Console.Write(Binary(n))
Console.ReadKey()
End Sub
这可能会让你发疯,因为它太小了,但问题是你使用哪个除法运算符 使用
Binary(n/2)
将整数视为双精度,并将9.5传递给二进制,而Binary(n\2)
是指定的整数除法运算符。您可以阅读有关算术运算符的更多信息
以下是我的跑步记录:
Module Module1
Function Binary(n As Integer)
If n = 0 Or n = 1 Then
Console.Write(n)
Else
Binary(n \ 2)
Console.Write(n Mod 2)
End If
End Function
Sub Main()
Dim n As Integer
Console.Write("Enter Number: ")
n = Console.ReadLine()
Console.Write(Binary(n))
Console.ReadKey()
End Sub
End Module
19:10011的输出这可能会让您发疯,因为它太小了,但问题是您使用的除法运算符 使用
Binary(n/2)
将整数视为双精度,并将9.5传递给二进制,而Binary(n\2)
是指定的整数除法运算符。您可以阅读有关算术运算符的更多信息
以下是我的跑步记录:
Module Module1
Function Binary(n As Integer)
If n = 0 Or n = 1 Then
Console.Write(n)
Else
Binary(n \ 2)
Console.Write(n Mod 2)
End If
End Function
Sub Main()
Dim n As Integer
Console.Write("Enter Number: ")
n = Console.ReadLine()
Console.Write(Binary(n))
Console.ReadKey()
End Sub
End Module
19:10011的产量非常感谢:)非常感谢:)