diff --git a/book/02-основные-типы-данных-выражения/README.md b/book/02-основные-типы-данных-выражения/README.md index ac636ec..da4ad8a 100644 --- a/book/02-основные-типы-данных-выражения/README.md +++ b/book/02-основные-типы-данных-выражения/README.md @@ -307,7 +307,7 @@ auto b = q{ № }; // Ошибка! "№" - не токен язы auto a = q{ __EOF__ }; // Ошибка! __EOF__ - не токен, а конец файла ``` -Также D определяет еще один вид строковых литералов – шестнадцатеричную строку, то есть строку, состоящую из шестнадцатеричных цифр и пробелов (пробелы игнорируются) между `x"` и `"`. Шестнадцатеричные строки могут быть полезны для определения сырых данных; компилятор не пытается интерпретировать содержимое литералов никак знаки Юникода, ни как-то еще – только как шестнадцатеричные цифры. Пробелы внутри строк игнорируются. +Также D определяет еще один вид строковых литералов – шестнадцатеричную строку, то есть строку, состоящую из шестнадцатеричных цифр и пробелов (пробелы игнорируются) между `x"` и `"`. Шестнадцатеричные строки могут быть полезны для определения сырых данных; компилятор не пытается интерпретировать содержимое литералов ни как знаки Юникода, ни как-то еще – только как шестнадцатеричные цифры. Пробелы внутри строк игнорируются. ```d auto @@ -934,19 +934,11 @@ foreach (ref row; matrix) ### 2.3.10. Сдвиг -В языке D есть три операции сдвига, в каждой из которых участвуют -два целочисленных операнда: `a << b`, `a >> b` и `a >>> b`. Во всех случаях -значение `b` должно иметь тип без знака; значение со знаком необходимо -привести к значению беззнакового типа (разумеется, предварительно -убедившись, что `b >= 0`; результат сдвига на отрицательное количество -разрядов непредсказуем). `a << b` сдвигает a влево (то есть в направлении +В языке D есть три операции сдвига, в каждой из которых участвуют два целочисленных операнда: `a << b`, `a >> b` и `a >>> b`. Во всех случаях значение `b` должно иметь тип без знака; значение со знаком необходимо привести к значению беззнакового типа (разумеется, предварительно убедившись, что `b >= 0`; результат сдвига на отрицательное количество разрядов непредсказуем). `a << b` сдвигает a влево (то есть в направлении самого старшего разряда `a`) на `b` бит, а `a >> b` сдвигает `a` вправо на `b` бит. Если `a` – отрицательное число, знак после сдвига сохраняется. -`a >>> b` – это беззнаковый сдвиг независимо от знаковости `a`. Это означа -ет, что ноль гарантированно займет самый старший разряд `a`. Проил -люстрируем сюрпризы, которые готовит применение операции сдвига -к числам со знаком: +`a >>> b` – это беззнаковый сдвиг независимо от знаковости `a`. Это означает, что ноль гарантированно займет самый старший разряд `a`. Проиллюстрируем сюрпризы, которые готовит применение операции сдвига к числам со знаком: ```d int a = -1; // То есть 0xFFFF_FFFF