Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Binary numbers longer than 10 characters

Hi All,

As far as I understand, Excel can only handle 10 character binary numbers.
Is there any code anywhere which allows the handling of larger binary
numbers.

Ta

Andi


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default Binary numbers longer than 10 characters

Take a look he

http://www.mcgimpsey.com/excel/udfs/longdec2bin.html

In article ,
"Andibevan" wrote:

As far as I understand, Excel can only handle 10 character binary numbers.
Is there any code anywhere which allows the handling of larger binary
numbers.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,440
Default Binary numbers longer than 10 characters

Hi Andy,

Not correct.
First, I assume you mean 10-*digit* binary numbers; 10-character binary
numbers would (in most people's opinion) be 80 bits; try figure out what
numbers you can store in an 80-bit binary.
Excel's *precision* is 15 decimal digits. It can store numbers as large as
9.99999999999999E308, but it loses some precision. By the way, 15 digits of
precision means you can loose something like 1/1000,000,000,000th of a
percent in precision. Few application areas require more.
However, if you do require more precision, download the XNUMBERS utility
he

http://digilander.libero.it/foxes/index.htm

If you just need large "numbers" that are really just identifiers with which
you don't have to calculate, like credit card numbers, use text. One way is
to format cells as text before entering the number, another is to precede
the number with a single quote.
--

Kind Regards,

Niek Otten

Microsoft MVP - Excel

"Andibevan" wrote in message
...
Hi All,

As far as I understand, Excel can only handle 10 character binary numbers.
Is there any code anywhere which allows the handling of larger binary
numbers.

Ta

Andi



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 128
Default Binary numbers longer than 10 characters

Hi Niek,

Thanks for your guidance, I was a bit brief in my description.

I believed that excel can only handle 10 digit binary numbers as when I
tried "=BIN2DEC(11111111111)" it gave a #num! error

Thanks

Andy

"Niek Otten" wrote in message
...
Hi Andy,

Not correct.
First, I assume you mean 10-*digit* binary numbers; 10-character binary
numbers would (in most people's opinion) be 80 bits; try figure out what
numbers you can store in an 80-bit binary.
Excel's *precision* is 15 decimal digits. It can store numbers as large as
9.99999999999999E308, but it loses some precision. By the way, 15 digits

of
precision means you can loose something like 1/1000,000,000,000th of a
percent in precision. Few application areas require more.
However, if you do require more precision, download the XNUMBERS utility
he

http://digilander.libero.it/foxes/index.htm

If you just need large "numbers" that are really just identifiers with

which
you don't have to calculate, like credit card numbers, use text. One way

is
to format cells as text before entering the number, another is to precede
the number with a single quote.
--

Kind Regards,

Niek Otten

Microsoft MVP - Excel

"Andibevan" wrote in message
...
Hi All,

As far as I understand, Excel can only handle 10 character binary

numbers.
Is there any code anywhere which allows the handling of larger binary
numbers.

Ta

Andi





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,651
Default Binary numbers longer than 10 characters

On Sat, 9 Apr 2005 14:39:17 +0100, "Andibevan"
wrote:

Hi All,

As far as I understand, Excel can only handle 10 character binary numbers.
Is there any code anywhere which allows the handling of larger binary
numbers.

Ta

Andi


There are some methods previously posted by Harlan in one of the Excel news
groups. You could do a Google search to find them.

This UDF will handle longer numbers, and also numbers with digits to the right
of the decimal, and bases from 2 to 62.

To use it, enter =BASECONVERT(Num,FromBase,ToBase,DecPlace) with your binary
string as the Num argument; FromBase would be 2 and ToBase whatever base you
want to convert to, e.g. 10. The optional DecPlace argument reflects the
number of digits you would wish to be to the right of the decimal in your
output. It may be left blank.

To enter this UDF, <alt-F11 opens the VB Editor. Ensure your project is
highlighted in the Project Explorer window, then Insert/Module and paste the
code below into the window that opens.

=======================================
Function BaseConvert(Num, FromBase As Integer, _
ToBase As Integer, Optional DecPlace As Long) _
As String

'by Ron Rosenfeld

Dim LDI As Integer 'Leading Digit Index
Dim i As Integer, j As Integer
Dim Temp, Temp2
Dim Digits()
Dim r
Dim DecSep As String

DecSep = Application.International(xlDecimalSeparator)

On Error GoTo HANDLER

If FromBase 62 Or ToBase 62 _
Or FromBase < 2 Or ToBase < 2 Then
BaseConvert = "Base out of range"
Exit Function
End If

If InStr(1, Num, "E") And FromBase = 10 Then
Num = CDec(Num)
End If

'Convert to Base 10
LDI = InStr(1, Num, DecSep) - 2
If LDI = -2 Then LDI = Len(Num) - 1

j = LDI

Temp = Replace(Num, DecSep, "")
For i = 1 To Len(Temp)
Temp2 = Mid(Temp, i, 1)
Select Case Temp2
Case "A" To "Z"
Temp2 = Asc(Temp2) - 55
Case "a" To "z"
Temp2 = Asc(Temp2) - 61
End Select
If Temp2 = FromBase Then
BaseConvert = "Invalid Digit"
Exit Function
End If
r = CDec(r + Temp2 * FromBase ^ j)
j = j - 1
Next i

If r < 0 Then LDI = Fix(CDec(Log(r) / Log(ToBase)))
If r < 1 Then LDI = 0

ReDim Digits(LDI)

For i = UBound(Digits) To 0 Step -1
Digits(i) = Format(Fix(r / ToBase ^ i))
r = CDbl(r - Digits(i) * ToBase ^ i)
Select Case Digits(i)
Case 10 To 35
Digits(i) = Chr(Digits(i) + 55)
Case 36 To 62
Digits(i) = Chr(Digits(i) + 61)
End Select
Next i

Temp = StrReverse(Join(Digits, "")) 'Integer portion
ReDim Digits(DecPlace)

If r < 0 Then
Digits(0) = DecSep
For i = 1 To UBound(Digits)
Digits(i) = Format(Fix(r / ToBase ^ -i))
r = CDec(r - Digits(i) * ToBase ^ -i)
Select Case Digits(i)
Case 10 To 35
Digits(i) = Chr(Digits(i) + 55)
Case 36 To 62
Digits(i) = Chr(Digits(i) + 61)
End Select
Next i
End If

BaseConvert = Temp & Join(Digits, "")

Exit Function
HANDLER: MsgBox ("Error: " & Err.Number & " " & Err.Description & vbLf & _
"Number being converted: " & Num)

End Function
================================


--ron


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Binary Numbers Sanford Lefkowitz Excel Discussion (Misc queries) 9 May 12th 10 04:06 PM
Solver returns non binary answer in binary constrained cells Navy Student Excel Worksheet Functions 6 September 1st 05 03:11 PM
large binary numbers Himu Excel Worksheet Functions 4 July 27th 05 02:53 AM
Binary Numbers longer than 10 characters Andibevan Excel Worksheet Functions 2 April 6th 05 10:08 PM
String Not Longer Than 255 Characters in VBA? Quido Excel Programming 1 September 19th 04 06:29 PM


All times are GMT +1. The time now is 06:56 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"