Не очень понятно про оболочечные Данные,ячейки памяти могут наверно размер менять,какое это значение те же операции только ячейки больше,по скорости тоже самое |
Работа с числами в языке 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-ричной системы). Таким образом, перевод чисел из двоичного представления в шестнадцатеричное и обратно осуществляется простой заменой всех групп из четырех двоичных цифр на шестнадцатеричные (по одному на каждую группу) и обратно :
Например, преобразуем к шестнадцатеричному виду:
