Найти - Пользователи
Полная версия: Системы счисления - помогите
Начало » Python для новичков » Системы счисления - помогите
1
Landberk
Здравствуйте, я совсем недавно стала изучать Питон по книжке Лутца (“Изучаем Питон 4-е издание”), когда дело дошло до систем счисления, я сбилась с ритма, так как не понятно: переводить в различные системы счисления только с функциями oct, hex, bin? Нужно ли учить числа в разных системах счисления(возможно, нужно иметь какую-нибудь таблицу с переведенными числами) или как распознавать код, где именно они могут пригодиться?
И что за число изображено в коде на картинке (001234), почему два нуля?
py.user.next
Landberk
И что за число изображено в коде на картинке (001234), почему два нуля?
Там спецификатор формата %06d, это значит: вывести целое число в поле ширины 6, заполняя пустое место ведущими нулями. Так как там 1234, то две цифры до шести цифр не хватает и в начале ставятся нули. Если ноль убрать (сделав %6d ), то будут пробелы выводиться, а не нули. А ширина полей задаётся тогда, когда выводишь таблицы чисел, чтобы таблицы ровными были (числа в разных строках могут быть разной длины и съезжать из-за этого).

Landberk
Нужно ли учить числа в разных системах счисления(возможно, нужно иметь какую-нибудь таблицу с переведенными числами) или как распознавать код, где именно они могут пригодиться?
Для систем счисления выучивается математический принцип формирования любого числа в любой системе счисления. Есть ещё ряд фишек, через которые можно быстро переводить из некоторых систем в другие по-быстрому.

Landberk
где именно они могут пригодиться?
В обычной жизни - адреса в памяти обычно в 16-ричной системе записываются. Открываешь программу какую-нибудь, а в ней файл бинарный; и вот чтобы перейти к какому-нибудь байту в этом файле, нужно знать 16-ричный адрес строки (строки - это отрезки по 16 байт). А сами байты записаны тоже в 16-ричной системе, потому что многие из них не имеют графического представления (в программах изображаются точками-пустотами). Ещё трафик если сетевой просматриваешь, там все сетевые пакеты тоже в таком виде. На старых компах 8-ричной системой пользовались. Сейчас в неё часто можно переходить из 16-ричной системы (если это кому надо). Ещё двоичная система часто используется. Чтобы передать модему, например, информацию типа: “включи режим такой-то”, “выключи режим такой-то”, “добавь данные такие-то”, “включи лампочку такую-то”, - достаточно просто каждую команду представить в виде одного бита (0/1 - да/нет), а потом эти биты выстроить в последовательность и засунуть в один байт. Так передаётся один байт (символ просто какой-то), в котором куча разных команд.
Rodegast
Забей на них! Потом разберёшься если надо будет.
Landberk
Спасибо большое за ответы!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB