- Перевод чисел из десятичной системы в четверичную
- Python: Перевод числа в другую систему счисления
- Преобразование чисел в двоичную систему
- Преобразование чисел в восьмеричную систему
- Преобразование чисел в шестнадцатеричную систему
- Преобразование чисел в произвольную систему счисления
- Комментарии
- Отправить комментарий
- Популярные сообщения
- Python вывести количество элементов списка
- Как сделать шашки на python
- Числа: целые, вещественные, комплексные
- Целые числа (int)
- Дополнительные методы
Перевод чисел из десятичной системы в четверичную
Используя алгоритм перевода чисел из десятичной системы в четверичную(последовательно делить число на q, т.е. на основание СС) и цикл while, написать программу перевода числа -173 в 4 систему счисления. Результат вывести в двухбайтовом формате.
Срочно, пожалуйста.
Рекурсивный перевод чисел из десятичной системы счисления в шестнадцатеричную
Есть код для рекурсивного перевода чисел из десятичной системы счисления в шестнадцатеричную.
Перевод из десятичной системы в четверичную
Необходимо написать программу, переводящую целые числа из десятичной системы счисления в.
Перевод из десятичной в четверичную систему счисления
должен быть создан класс с цифрами арабскими и класс с четверичными. с арабскимим нет проблем а.
Сообщение от 1LEX
Срочно не получится, так как питон Вы срочно не изучите. Поэтому консультировать Вас бесполезно. А делать за Вас работу, увы нет смысла.
уже есть начало, нужно только в двухбайтовый формат перевести, не знаю как.
n = int(input()) b = '' while n > 0: b = str(n % 4) + b n = n // 4 print(b)
>>> int('2231', 4) 173 >>> int('-2231', 4) -173
То есть Ваш код выдает модуль числа -173 в 4СС Результат Вашего кода нужно еще умножить на -1 .
Теперь по поводу
Сообщение от 1LEX
Упоминание о байтовом формате говорит о том, что под число должно отводится 2 байта, даже если оно занимает меньше байт.
Как сделать это в шестнадцатеричной 0xXXX , восьмеричной 0oXXX, двоичной 0bXXXXXX формах записи (везде спереди стоит ноль) я знаю. Но есть ли в питоне четверичная форма записи, я не знаю, не встречал.
Само число занимает один байт, что бы разместить его в двух байтах нужно просто добавить спереди нулевой байт.
В двоичной форме записи это будет выглядеть так
>>> int('-0b10101101', 2) -173 >>> int('-0b0000000010101101', 2) -173
Добавлено через 11 минут
Может кто то знает о существовании в питоне четверичной формы записи? Если она существует, я бы дополнил этой информацией свою базу данных.
Сообщение от 1LEX
что число нужно вывести как -00002231 . Но это уже осуществляется с помощью форматирования вывода на экран. Что подразумевается под данной фразой выясняйте у того, кто давал задание.
1 2 3 4 5 6 7 8 9 10 11 12
def convert_base(value, base, length=16): if value 0: value = ( 1) + value res = '' while value > 0: res = str(value % base) + res value //= base return res print(convert_base(-173, 4)) # 33331103
vpArth, Спасибо за замечание. У меня была такая мысль, но поленился опять вспоминать о представлении отрицательных чисел в питоне. Приемы дополнения и так далее.
Добавлено через 2 часа 32 минуты
vpArth, На самом деле все не так просто. Ваш подход верен только для 4-х разрядных вычислительных систем, то есть только для определенных видов математических вычислений. Для современных компьютеров такой подход не пригоден, так как в байте не 4, а 8 бит и при этом может использоваться только двоичная система счисления, так как бит может иметь только 0 и 1 . Поэтому компьютер при преобразовании числа 33331103 представленного в четверичной системе счисления выдаст нам десятичное число 65363
, а не -147 .
И -1 в 8_и битовом компьютере будет не 33333333 , а будет 11111111 .
В 4_х битовом компьютере -1 будет выглядеть так, 1111 .
Поэтому Ваши вычисления не имеют никакого отношения к байтам компьютера, а годятся только для математических вычислений относящихся к четырехзначной системе счисления, где нет понятия байта а оперируют понятием разрядности.
В общем то это претензии не к Вам, а к составителю условия задачи. По моему не правильно число содержащее 4 разряда называть байтом.
Я уже давно не занимался математикой, но это скорее математическая задача, в которой не все ясно, например определение понятия байта.
Python: Перевод числа в другую систему счисления
В языке программирования Python преобразование числа в другую систему счисления может быть выполнено с использованием встроенных функций и методов.
Преобразование чисел в двоичную систему
Python предоставляет встроенную функцию bin() для преобразования числа в двоичную систему.
# Пример преобразования числа в двоичную систему num = 18 binary_num = bin(num) print(binary_num) # Вывод: 0b10010
Преобразование чисел в восьмеричную систему
Функция oct() в Python преобразует число в восьмеричную систему.
# Пример преобразования числа в восьмеричную систему num = 18 octal_num = oct(num) print(octal_num) # Вывод: 0o22
Преобразование чисел в шестнадцатеричную систему
Функция hex() используется для преобразования числа в шестнадцатеричную систему.
# Пример преобразования числа в шестнадцатеричную систему num = 18 hex_num = hex(num) print(hex_num) # Вывод: 0x12
Преобразование чисел в произвольную систему счисления
Python не предоставляет встроенной функции для преобразования числа в произвольную систему счисления. Однако, это можно сделать с помощью пользовательской функции.
# Пример функции для преобразования числа в произвольную систему счисления def convert(num, base): digits = "0123456789ABCDEF" if num < base: return digits[num] else: return convert(num // base, base) + digits[num % base] # Пример преобразования числа в систему счисления с основанием 5 num = 18 base = 5 converted_num = convert(num, base) print(converted_num) # Вывод: 33
- Получить ссылку
- Электронная почта
- Другие приложения
Комментарии
Отправить комментарий
Популярные сообщения
Python вывести количество элементов списка
Python: Вывод количества элементов списка В этой статье мы рассмотрим как выводить количество элементов списка с помощью языка программирования Python. Использование функции len() Для определения количества элементов в списке в Python, используйте встроенную функцию len() . my_list = [1, 2, 3, 4, 5] elements_count = len(my_list) print("Количество элементов в списке:", elements_count) Этот код создает список my_list , а затем использует функцию len() для подсчета элементов в списке. Результат будет выведен на экран. Использование цикла for Если вы хотите подсчитать количество элементов списка без использования функции len() , вы можете использовать цикл for . my_list = [1, 2, 3, 4, 5] elements_count = 0 for _ in my_list: elements_count += 1 print("Количество элементов в списке:", elements_count) В этом примере мы инициализируем переменную elements_count значением 0, а затем для каждого элемента в списке увел
Как сделать шашки на python
Как сделать шашки на Python Как сделать шашки на Python В этой статье мы рассмотрим, как создать простую игру в шашки на Python с использованием библиотеки Pygame. Подготовка Для начала установите библиотеку Pygame, используя следующую команду: pip install pygame Создание доски import pygame pygame.init() WIDTH, HEIGHT = 800, 800 ROWS, COLS = 8, 8 SQUARE_SIZE = WIDTH // COLS WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) BLUE = (0, 0, 255) def draw_board(win): win.fill(WHITE) for row in range(ROWS): for col in range(row % 2, COLS, 2): pygame.draw.rect(win, BLACK, (row * SQUARE_SIZE, col * SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE)) def main(): win = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Checkers") clock = pygame.time.Clock() run = True while run: clock.tick(60) for event in pygame.event.get(): if event.ty
Числа: целые, вещественные, комплексные
Числа в Python 3: целые, вещественные, комплексные. Работа с числами и операции над ними.
Целые числа (int)
Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:
x + y | Сложение |
x - y | Вычитание |
x * y | Умножение |
x / y | Деление |
x // y | Получение целой части от деления |
x % y | Остаток от деления |
-x | Смена знака числа |
abs(x) | Модуль числа |
divmod(x, y) | Пара (x // y, x % y) |
x ** y | Возведение в степень |
pow(x, y[, z]) | x y по модулю (если модуль задан) |
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Над целыми числами также можно производить битовые операции
x | y | Побитовое или |
x ^ y | Побитовое исключающее или |
x & y | Побитовое и |
x | Битовый сдвиг влево |
x >> y | Битовый сдвиг вправо |
~x | Инверсия битов |
Дополнительные методы
int.bit_length() - количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.
int.to_bytes(length, byteorder, *, signed=False) - возвращает строку байтов, представляющих это число.
int.from_bytes(bytes, byteorder, *, signed=False) - возвращает число из данной строки байтов.
Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:
- int([object], [основание системы счисления]) - преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) - преобразование целого числа в двоичную строку.
- hex(х) - преобразование целого числа в шестнадцатеричную строку.
- oct(х) - преобразование целого числа в восьмеричную строку.
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
Для высокой точности используют другие объекты (например Decimal и Fraction)).
Также вещественные числа не поддерживают длинную арифметику:
Простенькие примеры работы с числами:
float.as_integer_ratio() - пара целых чисел, чьё отношение равно этому числу.
float.is_integer() - является ли значение целым числом.
float.hex() - переводит float в hex (шестнадцатеричную систему счисления).
classmethod float.fromhex(s) - float из шестнадцатеричной строки.
Помимо стандартных выражений для работы с числами (а в Python их не так уж и много), в составе Python есть несколько полезных модулей.
Модуль math предоставляет более сложные математические функции.
В Python встроены также и комплексные числа:
: complex() Для работы с комплексными числами используется также модуль cmath.
Для вставки кода на Python в комментарий заключайте его в теги
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов