Рейтинг@Mail.ru

Код программы перевода числа из произвольной системы счисления в другую произвольную

Опубликовано в Полезные советы

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

Программный код для перевода чисел в разных системах счисления (разворачивается)
''' <summary>
''' Вспомогательные.
''' </summary>
<Runtime.CompilerServices.Extension()>
Public Module Helpers

    ''' <summary>
    ''' Преобразует число из десятичной системы счисления в число в восьмеричной системе счисления.
    ''' </summary>
    <Runtime.CompilerServices.Extension()>
    Public Function ToOctal(dec As Integer) As Integer
        Return ConvertFromTo(dec, 10, 8)
    End Function

    ''' <summary>
    ''' Преобразует число из десятичной системы счисления в число в двоичной системе счисления.
    ''' </summary>
    <Runtime.CompilerServices.Extension()>
    Public Function ToBinary(dec As Integer) As Integer
        Return ConvertFromTo(dec, 10, 2)
    End Function

    ''' <summary>
    ''' Преобразует число из заданной системы счисления в другую.
    ''' </summary>
    ''' <param name="number">Число в исходной системе счисления.</param>
    ''' <param name="fromBase">Исходная система счисления.</param>
    ''' <param name="toBase">Целевая система счисления.</param>
    ''' <remarks>
    ''' Будьте внимательны: при переводе в двоичную систему может возникнуть ошибка переполнения, т.к. двоичные числа могут быть очень длинные.
    ''' Также здесь не реализован перевод чисел из и в 16-ную систему счисления, в которой применяется цифро-буквенная нотация.
    </remarks>
    Public Function ConvertFromTo(number As Integer, fromBase As Integer, toBase As Integer) As Integer
        Dim result As Integer = 0
        Dim i As Integer = 0
        Do While (number <> 0)
            result += (number Mod toBase) * CInt(Math.Pow(fromBase, i))
            number = CInt(Math.Truncate(number / toBase))
            i += 1
        Loop
        Return result
    End Function

End Module
Подробнее ...

Калькулятор битовых операций

Опубликовано в Приложения

Данная программа позволяет быстро переводить числа из десятичной в двоичную и в шестнадцатеричную системы счисления и производить над ними битовые операции, такие как NOT, AND, OR и XOR, а также побитовый сдвиг.

Подробнее ...
Подписаться на этот канал RSS