我正在尝试将4503599627370495转换为Excel中的二进制文件。 DEC2BIN()返回#NUM!错误,因为DEC2BIN无法处理这么大的数字。

关于如何使它起作用的任何想法?

最佳答案

谢谢JustinDavies-那正是我所需要的,但是如果传递一个-ve数,它将陷入一个无限循环。我的修改:

Function DecToBin(ByVal DecimalIn As Variant, Optional NumberOfBits As Variant) As String
  DecToBin = ""
  DecimalIn = CDec(DecimalIn)
  If DecimalIn < 0 Then
    DecToBin = "Error - Number negative"
    Exit Function
  End If
  Do While DecimalIn <> 0
    DecToBin = Trim$(Str$(DecimalIn - 2 * Int(DecimalIn / 2))) & DecToBin
    DecimalIn = Int(DecimalIn / 2)
  Loop
  If Not IsMissing(NumberOfBits) Then
    If Len(DecToBin) > NumberOfBits Then
      DecToBin = "Error - Number too large for bit size"
    Else
      DecToBin = Right$(String$(NumberOfBits, "0") & _
      DecToBin, NumberOfBits)
    End If
  End If
End Function

10-04 20:48