Создать класс, который преобразует десятичную систему счисления в двоичную - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Привет! Мне нужно создать класс который преобразует десятичную систему счисления в двоичный, восьмеричный и шестнадцатеричный без использования готовых методов...

Решение задачи: «Создать класс, который преобразует десятичную систему счисления в двоичную»

textual
Листинг программы
  1. Option Strict On
  2.  
  3. Public Class Form1
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         Dim v As ULong = 2016
  7.         Dim IntToBaseN1 = New IntToBaseN(v)
  8.         MsgBox(String.Join(vbCrLf, _
  9.                            New String() {String.Format("Bin = {0}", IntToBaseN1.ToBaseBin), _
  10.                                          String.Format("Oct = {0}", IntToBaseN1.ToBaseOct), _
  11.                                          String.Format("Hex = {0}", IntToBaseN1.ToBaseHex), _
  12.                                          String.Format("N32 = {0}", IntToBaseN1.ToBaseN(32))}))
  13.     End Sub
  14. End Class
  15.  
  16. Public Class IntToBaseN
  17.     Private _value As ULong
  18.  
  19.     '
  20.     Sub New(ByVal value As ULong)
  21.         _value = value
  22.     End Sub
  23.  
  24.     '
  25.     Public Function ToBaseBin() As String
  26.         Return ToBaseN(2)
  27.     End Function
  28.  
  29.     Public Function ToBaseOct() As String
  30.         Return ToBaseN(8)
  31.     End Function
  32.  
  33.     Public Function ToBaseHex() As String
  34.         Return ToBaseN(16)
  35.     End Function
  36.  
  37.     Public Function ToBaseN(ByVal base As Integer) As String
  38.         If base < 2 Or base > 36 Then Throw New ToBaseNException(base)
  39.  
  40.         Dim d() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
  41.         Dim v As ULong = _value
  42.         ToBaseN = String.Empty
  43.         Do
  44.             ToBaseN = d(CInt(v Mod base)) & ToBaseN
  45.             v = v \ CULng(base)
  46.         Loop While v > 0
  47.  
  48.         Return ToBaseN
  49.     End Function
  50. End Class
  51.  
  52. Public Class ToBaseNException
  53.     Inherits Exception
  54.  
  55.     '
  56.     Protected Sub New()
  57.         MyBase.New()
  58.     End Sub
  59.  
  60.     Public Sub New(ByVal value As Integer)
  61.         MyBase.New(String.Format("Base {0} out of range", value))
  62.     End Sub
  63. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы