We help IT Professionals succeed at work.

# Decimal to binary number conversion

on
Medium Priority
330 Views
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
Comment
Watch Question

## View Solution Only

Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)

Commented:
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

tjr

Commented:
VERSION 2.00
Begin Form Form1
Caption         =   "Form1"
ClientHeight    =   2070
ClientLeft      =   1095
ClientTop       =   1485
ClientWidth     =   4800
Height          =   2475
Left            =   1035
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

Unlock the solution to this question.