|
Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое |
Работа с числами в языке Java
Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую
Во время программирования различного рода внешних устройств, регистров процессора, битовыми масками, кодировке цвета, и так далее, приходится работать с кодами беззнаковых целых чисел. При этом использование десятичных чисел крайне неудобно из-за невозможности легкого сопоставления числа в десятичном виде и его двоичных бит. А использование чисел в двоичной кодировке крайне громоздко – получаются слишком длинные последовательности нулей и единиц. Программисты используют компромиссное решение – шестнадцатеричную кодировку чисел, где в качестве основания системы счисления выступает число 16. Очевидно,
. В десятичной системе счисления имеется только 10 цифр: 0,1,2,3,4,5,6,7,8,9. А в 16-ричной системе счисления должно быть 16 цифр. Принято обозначать недостающие цифры заглавными буквами латинского алфавита: A,B,C,D,E,F. То есть
.
Таким образом, к примеру,
.
В Java для того, чтобы отличать 16-ричные числа, как мы уже знаем, перед ними ставят префикс 0x: 0xFF обозначает
, а 0x10 – это
, то есть 16.
Число N может быть записано с помощью разных систем счисления. Например, в десятичной:

или в двоичной:

или в шестнадцатеричной:

Преобразование в другую систему счисления сводится к нахождению соответствующих коэффициентов. Например,
по известным коэффициентам
– при переводе из десятичной системы в двоичную, или коэффициентов
по коэффициентам
- из двоичной системы в десятичную.
Преобразование чисел из системы с меньшим основанием в систему с большим основанием
Рассмотрим преобразование из двоичной системы в десятичную. Запишем число N в виде

и будем рассматривать как алгебраическое выражение в десятичной системе. Выполним арифметические действия по правилам десятичной системы. Полученный результат даст десятичное представление числа N.
Пример:
Преобразуем
к десятичному виду. Имеем:

Преобразование чисел из системы с большим основанием в систему с меньшим основанием
Рассмотрим его на примере преобразования из десятичной системы в двоичную. Нужно для известного числа
найти коэффициенты в выражении

Воспользуемся следующим алгоритмом: в десятичной системе разделим число N на 2 с остатком. Остаток деления (он не превосходит делителя) даст коэффициент
при младшей степени
. Далее делим на 2 частное, полученное от предыдущего деления. Остаток деления будет следующим коэффициентом
двоичной записи N. Повторяя эту процедуру до тех пор, пока частное не станет равным нулю, получим последовательность коэффициентов
.
Например, преобразуем
к двоичному виду. Имеем:
| частное | остаток | |
|
|---|---|---|---|
| 345 / 2 | 172 | 1 | ![]() |
| 172 / 2 | 86 | 0 | ![]() |
| 86 / 2 | 43 | 0 | ![]() |
| 43 / 2 | 21 | 1 | ![]() |
| 21 / 2 | 10 | 1 | ![]() |
| 10 / 2 | 5 | 0 | ![]() |
| 5 / 2 | 2 | 1 | ![]() |
| 2 / 2 | 1 | 0 | ![]() |
| 1 / 2 | 0 | 1 | ![]() |

Преобразование чисел в системах счисления с кратными основаниями
Рассмотрим число N в двоичном и шестнадцатеричном представлениях.


Заметим, что
. Объединим цифры в двоичной записи числа группами по четыре. Каждая группа из четырех двоичных цифр представляет число от 0 до
то есть от 0 до
. От группы к группе вес цифры изменяется в
раз (основание 16-ричной системы). Таким образом, перевод чисел из двоичного представления в шестнадцатеричное и обратно осуществляется простой заменой всех групп из четырех двоичных цифр на шестнадцатеричные (по одному на каждую группу) и обратно :
Например, преобразуем
к шестнадцатеричному виду:























