Results 1 to 20 of 20

Thread: Decimal to Binary - Optimising

Threaded View

  1. #1

    Thread Starter
    Fanatic Member x-ice's Avatar
    Join Date
    Mar 2004
    Location
    UK
    Posts
    671

    Resolved Decimal to Binary - Optimising

    How can i optimise (or just make it better) this code?
    VB Code:
    1. Option Explicit On
    2. Option Strict On
    3.  
    4. Imports System.Math
    5.  
    6. Public Class clsNumConv
    7.     Public Function Dec2Bin(ByVal DecNum As Int32, ByVal ShowDecNum As Boolean) As String
    8.         Dim DivNum As Int32
    9.         'Establish how many divisions will be done, +1 for number rounding
    10.         DivNum = CInt(Log(DecNum) / (Log(2)) + 1)
    11.         'Create array with number of columns needed according to 'DivNum'
    12.         Dim BinNums(DivNum, 2) As Int16
    13.         'Assign 'DecNum' to columns 1, row 0 of array
    14.         BinNums(0, 1) = CShort(DecNum)
    15.         Dim intRowNum As Int32 = 1 'Divisions loop counter
    16.         Dim RevBinNum As String
    17.         'Calculate divisions
    18.         For intRowNum = 1 To UBound(BinNums) 'To highest subscript of array
    19.             'Divide previous value by 2
    20.             BinNums(intRowNum, 1) = CShort(Math.Floor(BinNums(intRowNum - 1, 1) / 2))
    21.             'Calculate modulus
    22.             BinNums(intRowNum, 2) = CShort(BinNums(intRowNum - 1, 1) Mod 2)
    23.             'Make binary number string
    24.             RevBinNum &= CStr(BinNums(intRowNum, 2))
    25.         Next
    26.         Dim FinalBinNum As String
    27.         'Assign string to 'strBin'" (reverse the string, as the binary number is backwards)
    28.         FinalBinNum = StrReverse(RevBinNum)
    29.         'Remove leading zeros
    30.         FinalBinNum = FinalBinNum.TrimStart("0"c)
    31.         'Check "ShowDecNum" to establish whether or not to show original number
    32.         If ShowDecNum = True Then
    33.             'Output binary number, along with original decimal number
    34.             Return DecNum & "^10" & " = " & FinalBinNum & "^2"
    35.         Else
    36.             'Output binary number
    37.             Return FinalBinNum & "^2"
    38.         End If
    39.     End Function
    40. End Class
    Last edited by x-ice; Jul 24th, 2005 at 08:55 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width