Столкнулся с непонятной вещью: порядком арифметических действий.
Хотел упаковать четыре числа по формуле n4.val=n0.val+256*n1.val+65536*n2.val+16777216*n3.val , но панель не понимает, что в какой последовательности делать. Скобки вызывают ошибку синтаксиса.
Пробовал столбиком складывать:
n4.val=n0.val
n4.val=256*n1.val+n4.val
n4.val=65536*n2.val+n4.val
n4.val=16777216*n3.val+n4.val
но опять не то, на что рассчитывал.
Это панель себе на уме или мне идти учить язык?
Отправлено спустя 6 часов 6 минут 40 секунд:
Ладно, разобрался. Вернее, вбил костыль:
sys0=n0.val
sys1=256*n1.val
sys0=sys1+sys0
sys1=65536*n2.val
sys0=sys1+sys0
sys1=16777216*n3.val
sys0=sys1+sys0
n4.val=sys0
Причем, значения n должны вписаться в диапазон от -2147483648 до 2147483647, но это оговорка для макетирования. Если использовать для обмена системные переменные, ограничения уже от 0 до 4294967295.
Отправлено спустя 42 минуты 10 секунд:
Хм, если верить описанию, системные переменные беззнаковые, то есть от 0 до 4294967295. Однако, я так и не смог понять, как получить от деления 132:
sys2=2219313677/16777216
n8.val=sys2
n7.val=sys0/16777216
n6.val=2219313677/16777216
Во всех трех случаях частное -123. Активная подсказка поставила в тупик:
- sys.png (3.61 КБ) 3106 просмотров
Это китайцы что-то преднамеренно недоговаривают или сами путаются?