Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Java учебник Встроенные типы данных, операции над ними

Закон сохранения: выигрываем в универсальности - проигрываем в скорости (хотя в настоящее время разработаны компиляторы, которые сразу преобразуют исходный код программы в код определенной операционной системы). Во-вторых, на языке Java можно писать не только автономные программы, но и специальные модули для размещения на web-страницах. Эти модули называются апплетами, а средства их просмотра встроены в большинство браузеров.

Сдвиги

В языке Java есть три операции сдвига двоичных разрядов: 

Эти операции своеобразны тем, что левый и правый операнды в них имеют разный смысл. Слева стоит значение целого типа, а правая часть показывает, на сколько двоичных разрядов сдвигается значение, стоящее в левой части. При замыкании на сопротивление 5 Ом батарея элементов дает ток 1 А. Ток короткого замыкания батареи 6 А. Какую полезную наибольшую мощность может дать батарея?

Например, операция b1<< 2 сдвинет влево на 2 разряда предварительно повышенное значение 0...00110010 переменной b1, что даст в результате 0...011001000, десятичное 200. Освободившиеся справа разряды заполняются нулями, левые разряды, находящиеся за 32-м битом, теряются.

Операция b2 << 2 сдвинет повышенное значение 1...10011101 на два разряда влево. В результате получим 1...1001110100, десятичное значение —396.

Заметьте, что сдвиг влево на п разрядов эквивалентен умножению числа на 2 в степени n.

Операция b1 >> 2 даст в результате 0...00001100, десятичное 12, а b2 >> 2 — результат 1..11100111, десятичное -25, т. е. слева распространяется старший бит, правые биты теряются. Это так называемый арифметический сдвиг.

Операция беззнакового сдвига во всех случаях ставит слева на освободившиеся места нули, осуществляя логический сдвиг. Но вследствие предварительного повышения это имеет эффект только для нескольких старших разрядов отрицательных чисел. Так, b2 >>> 2 имеет результатом 001...100111, десятичное число 1 073 741 799.

Если же мы хотим получить логический сдвиг исходного значения loomoi переменной b2, т. е., 0...00100111, надо предварительно наложить на b2 маску, обнулив старшие биты: (b2 & 0XFF) >>> 2.

Замечание

Будьте осторожны при использовании сдвигов вправо.

Создание апплета с использованием потоков
Третье задание состоит в разработке апплета, в котором используются потоки (thread). Потоки удобно применять, например, для создания анимированного изображения.
Типовое задание. Один из примеров анимированного изображения - фейерверки. Вид фейерверка может быть любым, главное - он должен представлять собой периодически изменяющееся изображение.

Математический анализ, лекции по физике Компьютерные сети