Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Непонятное поведение компилятора
Непонятное поведение компилятора
vladh Дата: Чт, 23.02.2017, 15:22  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 247
Репутация: 7   ±
Замечания:   ±
На сайте с 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
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1117
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Все верно, если операция отдельно, то нужно указывать переменную результата. В команде print результат помещается компилятором в зарезервированную им переменную для вывода информации.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Непонятное поведение компилятора
Страница 1 из 11
Поиск: