Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Непонятное поведение компилятора
vladh Дата: Чт, 23.02.2017, 15:22  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Сегодня возникла проблема с оператором побитового сдвига << или >>/
Может кто подскажет почему если я в коде пишу вот такое:

Dim Kanal_A As Byte        ' Переменная канала А
Kanal_A << 1
При компиляции компилятор ругается на отсутствие знака "=".
А если напишу так:

Dim DW1 As Dword ' Создать переменную DW1 типа DWord
Dim Loop As Word ' Создать переменную Loopтипа Word
Print At 2,1, "DW1<<",Dec2 Loop ,"=", Bin32 DW1 << Loop

То все нормально?

Хотя если я запишу в своем 1 примере код так:
Kanal_A = Kanal_A << 1
то все нормально. Т.е. получается, что мы должны указать переменную-адресант в которую должен сохраниться результат сдвига. Хотя обычно, на мой взгляд это должна быть исходная переменная.

Сообщение отредактировал vladh - Чт, 23.02.2017, 16:17
ЯНДЕКС Дата: 23.02.2017
ADMIN Дата: Чт, 23.02.2017, 19:09  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Все верно, если операция отдельно, то нужно указывать переменную результата. В команде print результат помещается компилятором в зарезервированную им переменную для вывода информации.
  • Страница 1 из 1
  • 1
Поиск: