Читаем С++ для "чайников" . полностью

Поскольку программисты предпочитают представлять числа с помощью 4, 8, 16 или 32 битов, шестнадцатеричные числа состоят соответственно из 1, 2, 4 или 8 шестнадцатеричных разрядов ( даже если ведущие разряды равны 0 ).

В заключение замечу, что, так как терминал не поддерживает нижний индекс, записывать шестнадцатеричные символы в виде 16 неудобно. Даже в том текстовом редакторе, который я использую сейчас, довольно неудобно всякий раз менять режимы шрифтов для ввода всего двух символов. Поэтому программисты договорились начинать шестнадцатеричные числа с ( это странное обозначение было придумано ещё во время разработки языка С ). Таким образом, 16 равно 0x7В. Следуя этому соглашению, 0x7В равно 123, тогда как 0x123 равно 291.

К шестнадцатеричным числам можно применять все те же математические операторы, что и к десятичным. Просто нам трудно выполнить в уме умножение чисел 0хС * 0хЕ потому, что таблица умножения, которую мы учили в школе, применима только к десятичной системе счисления.

<p id="chapter4.3.4"><strong><emphasis>Выражения с римскими числами...61</emphasis></strong></p>

Интересно, что некоторые системы чисел значительно препятствовали развитию математики. К таким относится и так называемая римская система. Сложить два римских числа не очень сложно:

XIX + XXVI = XLV

Последовательность выполнения сложения такова:

а) IX+VI: I после V "уничтожает" I перед X, поэтому в результате получаем XV ;

б) X+XX=XXX, если добавить ещё один X, получим XXXX, или XL.

Сложность вычитания римских чисел приблизительно такая же. Однако чтобы умножить два римских числа, требуется диплом бакалавра математики ( у вас волосы станут дыбом от правила, которое объясняет, как добавить к X разряд справа так, чтобы X*IV равнялось XL ). А уж о делении римских чисел можно писать целые диссертации. Словом, хорошо, что мы пользуемся арабскими числами...

_________________

61 стр. Глава 4. Выполнение логических операций

<p id="chapter4.4"><strong>►Выполнение побитовых логических операций...62</strong></p>

Все числа С++ могут быть представлены в двоичном виде, т.е. с использованием только 0 и 1 в записи числа. В табл. 4.2 указаны операции, которые работают с числами побитово; отсюда и происходит название термина "побитовые операции".

    Таблица 4.2. Побитовые операции

    _________________

    Оператор— Функция

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    ~  — Каждый бит меняет своё значение на противоположное: 0 заменяется 1, 1 — нулём

    &  — Побитовое И: поочередно выполняет операцию И с парами битов левого и правого аргумента

    — Побитовое ИЛИ

    ^  — Побитовое исключающее ИЛИ

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 

С помощью побитовых операций можно сохранять большое количество информации в маленьком участке памяти. В мире существует множество вещей, которые имеют только два состояния ( или, максимум, четыре ). Вы или женаты ( замужем ), или нет ( хотя можете быть в разводе или ещё не женаты ). Вы или мужчина, или женщина ( по крайней мере, так сказано в моих водительских правах ). В С++ каждую такую характеристику вы можете сохранить в одном бите. Таким образом, поскольку для хранения целого числа выделяется 4 байта, в тип int можно упаковать значения 32 разных свойств.

Кроме того, побитовые операции выполняются крайне быстро. Хранение 32 характеристик в одном типе не приводит ни к каким дополнительным затратам.

«Хотя память становится всё дешевле, она всё равно не безгранична. Иногда, при работе с большими объёмами данных, такая экономия с использованием битовых представлений весьма существенна.»

[Советы]

<p id="chapter4.4.1"><strong><emphasis>Побитовые операции с одним битом...62</emphasis></strong></p>

Побитовые операторы &, ^, | и ~ выполняют логические операции над отдельными битами числа. Если рассматривать 0 как false и 1 как true ( так принято, хотя можно ввести и другие обозначения ), то для оператора ~ справедливо следующее:

      ~1( true ) равно 0( false )

      ~0( false ) равно 1( true )

      Оператор & определяется так:

      1( true ) & 1 ( true ) равно 1( true )

      1( true ) &0 ( false ) равно 0( false )

      0( false ) & 0 ( false ) равно 0( false )

      0( false ) &1 ( true ) равно 0( false )

      Для оператора |:

      1( true ) | 1 ( true ) равно 1( true )

      1( true ) | 0 ( false ) равно 1( true )

      0( false ) | 0 ( false ) равно 0( false )

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных