View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Dec2Bin Function Max length of 16 bits

? Dec2Bin(4294967294,32)
11111111111111111111111111111110
? dec2Bin(4294967295,32)
11111111111111111111111111111111
? dec2bin(16,32)
00000000000000000000000000010000

It worked fine for me.

--
Regards,
Tom Ogilvy

"Rich" wrote in message
om...
I am using the following function to convert from deciminal to binary.
It works great for small numbers but when I send it a decimal value
that I want convered to 32 binary digits the result that comes out is
only 16 binary bits.

Is there a way to make this function support 32 bit binary? Or is
there another function I can replace it with?



Function Dec2Bin(ByVal DecimalIn As Variant, _
Optional NumberOfBits As Variant) As String
Dec2Bin = ""
DecimalIn = Int(CDec(DecimalIn))
Do While DecimalIn < 0
Dec2Bin = Format$(DecimalIn - 2 * Int(DecimalIn / 2)) &
Dec2Bin
DecimalIn = Int(DecimalIn / 2)
Loop
If Not IsMissing(NumberOfBits) Then
If Len(Dec2Bin) NumberOfBits Then
Dec2Bin = "Error - Number exceeds specified bit size"
Else
Dec2Bin = Right$(String$(NumberOfBits, _
"0") & Dec2Bin, NumberOfBits)
End If
End If
End Function