martes, 3 de diciembre de 2013

SISTEMAS NUMÉRICOS


Los sistemas de numeración son conjuntos de dígitos usados para representar cantidades, así se tienen los sistemas de numeración decimal, binario, octal, hexadecimal, romano, etc. Los cuatro primeros se caracterizan por tener una base (número de dígitos diferentes: diez, dos, ocho, dieciséis respectivamente).

Este es el diseño del proyecto realizado.



Este es el código utilizado:


Public Class Form1
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim bits() As Integer
        Dim pos As Integer = -1
        Dim x As Integer = Val(txtnume.Text)



        Dim bit As Integer
        Do While x >= 2
            bit = x Mod 2 'se obtiene el bit
            x = Int(x / 2) 'se obtiene el siguiente numero
            pos = pos + 1
            ReDim Preserve bits(pos) 'asignar el tamaño del vector
            bits(pos) = bit
        Loop
        '******se almacena el ultimo bit*****************
        '**************que se obtiene de lo que halla quedado************
        pos = pos + 1
        ReDim Preserve bits(pos) 'se crea una nueva posicion
        bits(pos) = x
        txtresultado.Text = ""
        For i As Integer = pos To 0 Step -1
            'MsgBox(bits(i))
            txtresultado.Text = txtresultado.Text & bits(i)
        Next
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim binarios As String
        binarios = txtnume.Text()
        Dim potencia As Integer = -1
        Dim bit As Integer
        Dim base As Integer
        Dim numdecimal As Integer


        For i = (binarios.Length - 1) To 0 Step -1

            potencia = potencia + 1
            bit = Val(binarios(i)) 'obtengo el bit de la cadena

            base = 2 ^ potencia 'elevo el bit a la potencia
            numdecimal = numdecimal + (bit * base)
            txtresultado.Text = ""
        Next
        'MsgBox(numdecimal)
        txtresultado.Text = txtresultado.Text & numdecimal
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim bits() As Integer
        Dim pos As Integer = -1
        Dim x As Integer = Val(txtnume.Text)



        Dim bit As Integer
        Do While x >= 8
            bit = x Mod 8 'se obtiene el bit
            x = Int(x / 8) 'se obtiene el siguiente numero
            pos = pos + 1
            ReDim Preserve bits(pos) 'asignar el tamaño del vector
            bits(pos) = bit
        Loop
        '******se almacena el ultimo bit*****************
        '**************que se obtiene de lo que halla quedado************
        pos = pos + 1
        ReDim Preserve bits(pos) 'se crea una nueva posicion
        bits(pos) = x
        txtresultado.Text = ""
        For i As Integer = pos To 0 Step -1
            'MsgBox(bits(i))
            txtresultado.Text = txtresultado.Text & bits(i)
        Next
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Dim octales As String
        octales = txtnume.Text()
        Dim potencia As Integer = -1
        Dim octal As Integer
        Dim base As Integer
        Dim numdecimal As Integer


        For i = (octales.Length - 1) To 0 Step -1

            potencia = potencia + 1
            octal = Val(octales(i))

            base = 8 ^ potencia
            numdecimal = numdecimal + (octal * base)
            txtresultado.Text = ""
        Next
        'MsgBox(numdecimal)
        txtresultado.Text = txtresultado.Text & numdecimal
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim hexa() As String
        Dim pos As Integer = -1
        Dim hexad As String
        Dim x As Integer = Val(txtnume.Text)

        Dim hex As String
        Do While x >= 16
            hex = x Mod 16

            x = Int(x / 16)
            pos = pos + 1

            Select Case hex
                Case "10" : hexad = "A"
                Case "11" : hexad = "B"
                Case "12" : hexad = "C"
                Case "13" : hexad = "D"
                Case "14" : hexad = "E"
                Case "15" : hexad = "F"

                Case Else
                    hexad = hex
            End Select

            ReDim Preserve hexa(pos)
            hexa(pos) = hexad

        Loop



        pos = pos + 1
        ReDim Preserve hexa(pos)

        hexa(pos) = x
        txtresultado.Text = ""
        For i As Integer = pos To 0 Step -1


            txtresultado.Text = txtresultado.Text & hexa(i)
        Next
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Dim hexadecimales As String
        hexadecimales = txtnume.Text
        Dim potencia As Integer = -1
        Dim Hex As String
        Dim base As Integer
        Dim numdecimal As Integer
        Dim numero As Integer



        For i = (hexadecimales.Length - 1) To 0 Step -1

            potencia = potencia + 1
            Hex = UCase(hexadecimales(i))

            Select Case Hex
                Case "A" : numero = 10
                Case "B" : numero = 11
                Case "C" : numero = 12
                Case "D" : numero = 13
                Case "E" : numero = 14
                Case "F" : numero = 15

                Case Else

                    numero = Val(Hex)

            End Select

            base = 16 ^ potencia 'elevo el bit a la potencia



            numdecimal = numdecimal + (numero * base)
            txtresultado.Text = ""
        Next
        'MsgBox(numdecimal)
        txtresultado.Text = txtresultado.Text & numdecimal
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        txtnume.Clear()
        txtresultado.Clear()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

En este link podrá encontrar el proyecto ya funcional.




No hay comentarios:

Publicar un comentario