Начало или конец раздела? [закрыто]

Язык Java не предоставляет ничего подобного ключевому слову unsigned. A byte в соответствии с спецификацией языка представляет собой значение от & min. 128-127. Например, если byte передается в int, Java будет интерпретировать первый бит как знак и использовать расширение знака .

При этом ничего не мешает вам просматривать byte просто как 8 бит и интерпретировать эти биты как значение от 0 до 255. Просто имейте в виду, что вы ничего не можете чтобы заставить вашу интерпретацию чужого метода. Если метод принимает значение byte, тогда этот метод принимает значение между & минус 128 и 127, если явно не указано иное.

Вот несколько полезных преобразований / манипуляций для вашего удобства:

Конверсии в / из int

// From int to unsigned byte
int i = 200;                    // some value between 0 and 255
byte b = (byte) i;              // 8 bits representing that value

// From unsigned byte to int
byte b = 123;                   // 8 bits representing a value between 0 and 255
int i = b & 0xFF;               // an int representing the same value

(Или, если вы используете Java 8+, используйте Byte.toUnsignedInt .)

Анализ / форматирование

Лучший способ - использовать приведенные выше преобразования:

// Parse an unsigned byte
byte b = (byte) Integer.parseInt("200");

// Print an unsigned byte
System.out.println("Value of my unsigned byte: " + (b & 0xFF));

Арифметика

Представление с двумя дополнениями «просто работает» для сложения, вычитания и умножения:

// two unsigned bytes
byte b1 = (byte) 200;
byte b2 = (byte) 15;

byte sum  = (byte) (b1 + b2);  // 215
byte diff = (byte) (b1 - b2);  // 185
byte prod = (byte) (b2 * b2);  // 225

Для разделения требуется ручное преобразование операндов:

byte ratio = (byte) ((b1 & 0xFF) / (b2 & 0xFF));

4
задан user62739 11 May 2012 в 23:40
поделиться

1 ответ

Ваш вопрос возможно подобен , начальная загрузка - имеет раздел 'подкачки' в 'начале' лучше, чем в 'конце'? - Спрашивают Ubuntu

, обсуждение просто указывает, что помещение раздела в 'начинающейся' стороне жесткого диска делает его немного быстрее, чем помещение раздела в конце, потому что, чем ближе блоки к центру диска, тем быстрее и меньше циклы чтения-записи были бы.

4
ответ дан Community 22 October 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: