2009-12-31 2 views
6

В учебнике Sun»он говорит о байте:ява байтовый тип данных

байт: Тип байт данных представляет собой 8-разрядное знаковое двоичное дополнение целое. Он имеет минимальное значение -128 и максимальное значение 127 (включительно). Тип данных байта может быть полезен для экономии памяти в больших массивах, где действительно важна экономия памяти. Они также могут использоваться вместо int, где их ограничения помогают уточнить ваш код; тот факт, что диапазон переменных ограничен, может служить формой документации.

Как сохранить память? Что такое комплимент 2?

ответ

10

Сохраняет память, потребляя только восемь бит памяти, против 32 для целых чисел. Размер массивов прямо пропорционален размеру содержащегося в нем типа данных; массив целых чисел будет потреблять около четырех раз больше памяти (handwaves), чем массив байтов.

От Wikipedia:

Система комплемента дополнительного кода или дополнительный код дополнения арифметики является системы, в которой отрицательные числа представлены два в дополнении абсолютного значения; 1 Эта система является наиболее распространенным методом представления целых чисел на компьютерах. [2] В такая система, число отрицается (преобразуется из положительного в отрицательное или наоборот), вычисляя его два . N-разрядная система с двумя номерами может представлять любое целое число в диапазоне от -2^(N-1) до + 2^(N-1) -1.

0

Байт сохраняет память из-за того, что ее длина составляет всего один байт, тогда как большинство других типов данных обычно используются длиной 4 или 8 байтов.

Twos дополнение - это почти универсальный способ кодирования подписанных чисел как двоичных. Эта кодировка обладает хорошим свойством, которое увеличивает любое значение, как если бы оно было просто двоичным, дает вам следующее целочисленное значение, даже когда значение проходит через ноль. Одна и та же схема ЦП может вычислять подписанные или беззнаковые целые числа.

2

Другое дело, что в основном по историческим причинам большинство данных разбивается на 8-битные байты. Это могло быть любое число, но 8-разрядные компьютеры были действительно популярны, когда все было действительно стандартизировано, я думаю.

Так, например, текст часто хранится с одним 8-битным байтом на букву (в режиме ASCII). Файлы данных часто индексируются с помощью указателей на байтовые индексы. Люди говорят о килобайтах и ​​мегабайтах, и они означают 1024 * 8 бит. или 2 * 8 бит.

Баты являются своего рода универсальной единицей вычислительной техники для множества целей. Если вы хотите отредактировать стандартный файл, прочитанный другими программами, вам, скорее всего, понадобится загрузить его в байт [] и манипулировать отдельными байтами в какой-то момент.

Если солнце не содержит байтовый тип данных, писать java-программы, которые работали с данными или текстом из других программ, были бы огромной болью. Вам нужно будет загружать целые числа, а также выполнять сдвиг и операции для выделения отдельных битов и разделить индексы на 4 все время. Не весело.

Таким образом, байты не были добавлены для сохранения памяти, но для обеспечения безопасности.

Поскольку байт может иметь один из двух возможных значений, Sun решил, что они должны обозначать от -128 до 127, а не от 0 до 255, потому что они не хотели иметь дело с подписью и без знака числа (все их типы данных подписаны, а Java не имеет ключевое слово unsigned, например C/C++).

Они использовали два дополнения, потому что это стандартный способ решения отрицательных чисел.

Смежные вопросы