Вот быстрый пример:
я нахожу синтаксис списка разделенных запятой значений довольно полезным для создания вызовов функции:
% Build a list of args, like so:
args = {'a', 1, 'b', 2};
% Then expand this into arguments:
output = func(args{:})
Невозможно выполнить сдвиг на отрицательное значение. Вы также не можете выполнить сдвиг на большое положительное число.
Из спецификации C # ( http://msdn.microsoft.com/en-us/library/a1sway8w.aspx ):
If first operand is an int or uint (32-bit quantity),
the shift count is given by the low-order five bits of second operand.
...
The high-order bits of first operand are discarded and the low-order
empty bits are zero-filled. Shift operations never cause overflows.
В языках типа C << -1
не переводится в >> 1
. Вместо этого берутся 5 младших битов сдвига, а остальные игнорируются, поэтому в этом случае дополнение до двух -1
преобразуется в << 31
.
Вы получить те же результаты, например. JavaScript javascript: alert (8 << - 8)
.