В этом цикле for мы можем проинструктировать переменную elem последовательно использовать все элементы массива.
Представление данных и типы данных
Давайте посмотрим под капот калькулятора или компьютера, и посмотрим, как мы можем представлять данные.
И начнем с простого.
Давайте посмотрим на логические значения, потому что там есть только два значения, true и false.
Цифровые компьютеры состоят из электроники, которая может находиться только в одном из двух состояний.
Триггер – это базовая единица, которая может оставаться либо в одном положении, либо в другом.
Выход триггера остается в одном из этих двух состояний и будет оставаться там до тех пор, пока не появится сигнал для его изменения.
В действительности 1 может иметь нулевое напряжение, а другое состояние – пять вольт.
Но мы можем произвольно интерпретировать их как 0 и 1.
Поэтому мы можем сказать, что триггер может хранить один бит информации.
Теперь это именно то, что нам нужно, чтобы сохранить логическое значение, потому что логических значений также два, ложь и истина.
И мы, опять же, можем произвольно присвоить 0 false и 1 true.
Итак, мы говорим, что нам нужен бит, чтобы сохранить логическое значение.
Теперь, если у вас есть два триггера, мы можем сохранить два бита.
Если мы соберем их вместе, у нас будет четыре возможных комбинации: 0—0, 0—1, 1—0 и 1—1, поскольку каждый из них может иметь состояние 0 или 1 независимо друг от друга.
И если мы возьмем восемь триггеров, чтобы сохранить восемь бит, у нас будет 2 в степени 8 различных комбинаций.
То есть 256 комбинаций в целом.
Что мы можем с ними делать?
Восемь бит называется байт.
Итак, что мы можем сделать с байтом?
Мы можем представить 256 различных чисел.
Например, натуральные числа от 0 до 255.
Мы также можем отображать 256 уровней красного, от черного до ярко-красного.
И мы можем получить любой цвет, составляя уровни красного, зеленого и синего.
Для каждого из этих компонентов мы используем один байт.
Таким образом, это всего три байта или 24 бита, что означает 2 в степени 24, что почти 17 миллионов цветовых комбинаций.
Звуки, фильмы, все представлено битами 0 и 1.
Это позволяет нам иметь богатую информацию, но в тоже время иметь единый способ обработки этой информации.
Наконец, мы можем также представлять отдельные символы, как те, которые есть у вас на клавиатуре, а также некоторые другие специальные символы.
Для этого существует множество кодировок.
Java использует кодировку юникода, использующую 16 бит.
Другие кодировки используют только восемь бит.
Таким образом, все в компьютере представлено битами.
Все сводится к нулям и единицам.
Давайте сосредоточимся на том, как мы представляем числа в двоичной форме битами.
С 1 байтом – 8 бит – мы можем сформировать 256 различных комбинаций, или 2 в степени 8.
Поэтому мы можем представить 256 различных чисел.
Это могут быть, например, натуральные числа от 0 до 255.
Но какая комбинация байт соответствует какому числу?
Давайте проанализируем систему, которую мы используем для представления чисел в нашей десятичной системе, которая использует 10 цифр, от 0 до 9.
Используем систему, основанную на весах.
Чем больше мы двигаемся влево, тем выше вес.
Когда мы пишем 972, мы имеем в виду 9 умножить на 100 плюс 7 умножить на 10 плюс 2.
Так как здесь основание 10, система исчисления называется десятичной.
Для двоичной системы исчисления тот же принцип, только основанием будет 2.
Соответственно, перевести число из двоичной системы в десятичную очень просто, нужно сложить получившийся ряд.
Перевести число из десятичной системы в двоичную тоже просто, нужно делить на 2 и записывать остаток.
Но как насчет отрицательных чисел? Нам тоже нужно работать с ними.
Неотрицательные числа, т. е. 0 и положительные числа – закодированы по-прежнему, где самый левый бит установлен в 0.