Convert Decimal - Binary, Decimal - Octal and Decimal - Hexadecimal
To call the function/s you would do:Decimal to BinaryVB Code:
Dim NumConv As New clsNumConv() 'Convert decimal to Binary txtNum.Text = NumConv.Dec2Bin(CInt(txtNum.Text), True) 'Convert decimal to Octal txtNum.Text = NumConv.Dec2Oct(CInt(txtNum.Text), True) 'Convert decimal to Hex txtNum.Text = NumConv.Dec2Hex(CInt(txtNum.Text), True)VB Code:
Option Explicit On Option Strict On Imports System.Math Public Class clsNumConv Public Function Dec2Bin(ByVal DecNum As Integer, ByVal ShowDecNum As Boolean) As String Dim DivNum As Integer 'Establish how many divisions will be done, +1 for number rounding DivNum = CInt(Log(DecNum) / (Log(2)) + 1) 'Create array with number of columns needed according to 'DivNum' Dim BinNums(DivNum, 2) As Integer 'Assign 'DecNum' to column 1, row 0 of array BinNums(0, 1) = CInt(DecNum) Dim RowNum As Integer = 1 'Divisions loop counter Dim RevBinNum As String 'Calculate divisions For RowNum = 1 To UBound(BinNums) 'To highest subscript of array 'Divide previous value by 2 BinNums(RowNum, 1) = CInt(BinNums(RowNum - 1, 1) \ 2) 'Calculate modulus BinNums(RowNum, 2) = CInt(BinNums(RowNum - 1, 1) Mod 2) 'Make binary number string RevBinNum &= CStr(BinNums(RowNum, 2)) Next Dim FinalBinNum As String 'Assign string to 'RevBinNum'" (reverse the string, as the binary number is backwards) FinalBinNum = StrReverse(RevBinNum) 'Remove leading zeros FinalBinNum = FinalBinNum.TrimStart("0"c) 'Check "ShowDecNum" to establish whether or not to show original number If ShowDecNum = True Then 'Output binary number, along with original decimal number Return DecNum & "(10)" & " = " & FinalBinNum & "(2)" Else 'Output binary number Return FinalBinNum & "(2)" End If End Function




Reply With Quote