Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Decimal to binary number conversion

Posted on 1998-07-29
3
Medium Priority
?
303 Views
Last Modified: 2008-02-20
Need to convert a decimal to binary.  Tried the following snippet with no luck.  Any body got something more understandable for a VB rookie?

Private Sub Command1_Click()

    DecValue = Val(Text1.Text)  
    BinValue = ""    
    Do
    TempValue = DecValue Mod 2
        BinValue = CStr(TempValue) + BinValue
    DecValue = DecValue \ 2
    Loop Until DecValue = 0     
    'Print
    'Print BinValue     
    Text2.Text = BinValue

End Sub
0
Comment
Question by:regent
3 Comments
 
LVL 6

Accepted Solution

by:
alamo earned 400 total points
ID: 1467185
Here's the same basic code slightly rewritten and made into a function, so that it is easier to understand and debug.  

Public Function ConvertToBinary(DecValue As Long) As String
    Dim BinValue As String
    Do
        BinValue = CStr(DecValue And 1) + BinValue
        DecValue = DecValue \ 2
    Loop Until DecValue = 0
    ConvertToBinary = BinValue
End Function

This function will not work with negative numbers! If you need to print negative numbers, tell me and I'll redo it. If it doesn't work for you otherwise, tell me how and we can debig it.

Hope this helps!
0
 

Author Comment

by:regent
ID: 1467186
I'm confused, tired and in desperation over this stupid conversion.  Can I just e-mail you my VB project and have you take a look at what I'm doing (trying to do)?  I'm at Turbo96TSI@aol.com

Thanks for your help.

tjr
0
 

Expert Comment

by:luvbox
ID: 1467187
VERSION 2.00
Begin Form Form1
   Caption         =   "Form1"
   ClientHeight    =   2070
   ClientLeft      =   1095
   ClientTop       =   1485
   ClientWidth     =   4800
   Height          =   2475
   Left            =   1035
   LinkTopic       =   "Form1"
   ScaleHeight     =   2070
   ScaleWidth      =   4800
   Top             =   1140
   Width           =   4920
   Begin TextBox Text2
      Height          =   285
      Left            =   360
      TabIndex        =   3
      Top             =   1320
      Width           =   4335
   End
   Begin TextBox Text1
      Height          =   285
      Left            =   360
      TabIndex        =   1
      Top             =   480
      Width           =   3015
   End
   Begin Label Label2
      Caption         =   "Display Binary len = 30"
      Height          =   255
      Left            =   360
      TabIndex        =   2
      Top             =   840
      Width           =   2295
   End
   Begin Label Label1
      Caption         =   "Enter Decimal"
      Height          =   255
      Left            =   360
      TabIndex        =   0
      Top             =   120
      Width           =   1935
   End
End
Sub Text1_Change ()
Dim i As Long, x As Long, bin As String
      Const maxpower = 30   ' Maximum number of binary digits supported.

      Text1.MaxLength = 9   ' Maximum number of decimal digits allowed.
      Text2.Enabled = False ' Prevent typing in second text box.
      bin = ""  'Build the desired binary number in this string, bin.
      x = Val(Text1.Text) 'Convert decimal string in text1 to long integer

      If x > 2 ^ maxpower Then
         MsgBox "Number must be no larger than " & Str$(2 ^ maxpower)
         Text2.Text = ""
         Exit Sub
      End If

      ' Here is the heart of the conversion from decimal to binary:

      ' Negative numbers have "1" in the 32nd left-most digit:
      If x < 0 Then bin = bin + "1" Else bin = bin + "0"

      For i = maxpower To 0 Step -1
         If x And (2 ^ i) Then   ' Use the logical "AND" operator.
            bin = bin + "1"
         Else
            bin = bin + "0"
         End If
      Next
      Text2.Text = bin  ' The bin string contains the binary number.

End Sub


0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

824 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question