Привет! На носу КЕГЭ по информатике, а ты по-прежнему переводишь числа из одной системы счисления (СС) в столбик или считаешь в уме? Держи лайфхак, который поможет тебе больше не ошибаться в вычислениях.
Перевод из любой системы счисления в десятичную на Python
В первой строке число 123 переводится из 4-ричной СС в 10-ю, во второй — число 1010 из 2-й СС в 10-ю, в третьей — число F5A0 из 16-й СС в 10-ю, а в четвертой строке происходит простое преобразование строки ‘100’ в целое число 100.
Конечно, вы подумали: «И зачем этот пример в 4-й строке?» На самом деле он демонстрирует то, как работает функция INT. Данная функция всегда принимает на вход два аргумента: строку и СС, из которой считывается строка. А перевод всегда осуществляется в десятичную СС. Но, т.к. мы привыкли в повседневной жизни пользоваться именно десятичной СС, то второй аргумент не пишем.
Перевод из десятичной системы счисления в двоичную на Python
В первой строке мы заводим переменную а и с помощью функции BIN преобразуем число 37 в двоичный код с префиксом ‘0b’ . Во второй строке выводим получившееся значение и тип переменной. Тип ‘STR’ говорит нам о том, что с данным значением можно обращаться как со строкой. В третьей строке мы снова переводим значение переменной a в десятичную СС.
СИСТЕМЫ СЧИСЛЕНИЯ для новичков
Пример . Подсчитать количество нулей и единиц в двоичной записи числа 37
Этот пример демонстрирует, что важно не забывать о первом символе незначащем нуле при подсчете количества нулей. Также можно избавиться от нуля, обрезав значение переменной a.
Источник: dzen.ru
Код программы перевода числа из произвольной системы счисления в другую произвольную
Часто необходимо перевести число из одной системы счисления в другую. Предлагается программный код статического класса, который реализует данную функциональность в виде статического метода ConvertFromTo(), а также дополнительных методов расширения.
Программный код для перевода чисел в разных системах счисления (разворачивается)
»’ »’ Вспомогательные. »’ Public Module Helpers »’ »’ Преобразует число из десятичной системы счисления в число в восьмеричной системе счисления. »’ Public Function ToOctal(dec As Integer) As Integer Return ConvertFromTo(dec, 10, 8) End Function »’ »’ Преобразует число из десятичной системы счисления в число в двоичной системе счисления. »’ Public Function ToBinary(dec As Integer) As Integer Return ConvertFromTo(dec, 10, 2) End Function »’ »’ Преобразует число из заданной системы счисления в другую. »’ »’ Число в исходной системе счисления. »’ Исходная система счисления.
»’ Целевая система счисления. »’ »’ Будьте внимательны: при переводе в двоичную систему может возникнуть ошибка переполнения, т.к. двоичные числа могут быть очень длинные. »’ Также здесь не реализован перевод чисел из и в 16-ную систему счисления, в которой применяется цифро-буквенная нотация. 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
Поблагодарить автора:
Поделиться
Урок 32. Перевод чисел между системами счисления
Наблюдаемые коллекции ObservableCollection в WPF можно изменять толкько в потоке пользовательского интерфейса. Однако можно несколько изменить данную коллекцию таким образом, чтобы можно было это делать из фонового потока. Например, вот так:
Imports System Imports System.Collections.Generic Imports System.Collections.ObjectModel Imports System.Collections.Specialized Imports System.Diagnostics Imports System.Windows.Threading Public Class ObservableCollectionThreadSafe(Of T) Inherits ObservableCollection(Of T) ‘наследуем от наблюдаемой коллекции ‘Переопределяем событие изменения коллекции Public Shadows Event CollectionChanged As NotifyCollectionChangedEventHandler #Region «КОНСТРУКТОРЫ» Public Sub New() MyBase.New() End Sub Public Sub New(items As IEnumerable(Of T)) MyBase.New(items) End Sub #End Region ‘/КОНСТРУКТОРЫ Protected Overrides Sub OnCollectionChanged(e As NotifyCollectionChangedEventArgs) Using MyBase.BlockReentrancy() ‘используем BlockReentrancy(), который запрещает выполнение повторных попыток изменения коллекции Dim eventHandler As NotifyCollectionChangedEventHandler = Me.CollectionChangedEvent If (eventHandler IsNot Nothing) Then Dim delegates As [Delegate]() = eventHandler.GetInvocationList() For Each handler As NotifyCollectionChangedEventHandler In delegates ‘идём по списку вызовов Dim dispatcherObject As DispatcherObject = TryCast(handler.Target, DispatcherObject) If (dispatcherObject IsNot Nothing) AndAlso (Not dispatcherObject.CheckAccess()) Then ‘Если подписчик — DispatcherObject И другой поток dispatcherObject.Dispatcher.Invoke(DispatcherPriority.DataBind, handler, Me, New Object() ) ‘вызываем обработчик в целевом потоке диспетчера Else handler(Me, e) ‘иначе запускаем обработчик как есть End If Next End If End Using End Sub End Class
Источник: soltau.ru
Перевод систем счисления [дубликат]
Вот способ для того, чтобы переводить из десятичной в любую систему счисления:
n = 343**6-7**10+47 string = » while n > 0: string+=str(n%3) n//= 3 print(string[::-1])
Ещё есть функции bin() , oct() , int() , hex() .
Отслеживать
14.2k 3 3 золотых знака 18 18 серебряных знаков 29 29 бронзовых знаков
ответ дан 21 июн 2021 в 22:57
181 9 9 бронзовых знаков
хочу дополнить ответ выше и сказать, что если вам наоборот нужно перевести в десятичную систему исчисления, то можно сделать так (это фрагмент кода):
n = 100100111 print(int(n, 2))
здесь 2 — это основание системы исчисления, из которой надо перевести в десятичную.
Отслеживать
67.8k 210 210 золотых знаков 76 76 серебряных знаков 219 219 бронзовых знаков
ответ дан 30 дек 2022 в 20:35
user536012 user536012
В текущем виде ваш ответ непонятен. Пожалуйста, нажмите править под сообщением, чтобы добавить больше подробностей, которые помогут другим понять, как он отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в Справке.
30 дек 2022 в 20:38
Код не работает.
30 дек 2022 в 22:29
-
Важное на Мете
Связанные
Похожие
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com