Разработка java | SEclub.org
Разработка java
Все новые
Malcolm, а быстрее работать с int или short ? А то я для экономии памяти некоторые переменные сделал short. Не замедлить это мой двиг?

Ссылка на пост
Всего сообщений: 7795
*
Malcolm
15 июн 2009 в 13:21
DDDEN!SSS, байты тоже превращаются побитовыми операциями сложения и сдвига. Ты можешь воспользоваться DataInputStream и DataOutputStream или написать что-то свое. В упомянутых классах int, например, запишется как 4 байта подряд, начиная со старшего (порядок big-endian). Иногда записывают в little-endian, когда сначала записыватеся наименее значащий байт. Таким методом, например, записаны значеия в ZIP или RAR.
W96Oi, тебе сюда: Создание / Переделка / Перевод JAVA .
*
DDDENISSS
15 июн 2009 в 13:56
Я не пойму: вот превратил данный с одной вершины в байты, а как эти данные сложить в один массив, а потом и к массиву со всеми вершинами и в массив со всем файлом. Со строкой это всё так: += делал. А побитовые операции только с int можно делать?
15 июн 2009 в 13:58 / DDDENISSS (1)
*
DDDENISSS
15 июн 2009 в 18:29
Malcolm, а быстрее работать с int или short ? А то я для экономии памяти некоторые переменные сделал short. Не замедлить это мой двиг?
*
Malcolm
15 июн 2009 в 18:48
DDDEN!SSS, насчет массивов ничего не понял. Какие массивы, создавай исходящий поток и пиши в него байты в нужном порядке. Побитовые операции применимы к любым целочисленным типам, их в Java пять штук. Насчет short: работать все равно с чем, единственная разница состоит в том, что при арифметических операциях с byte и short переменные автоматически расширяются до int. Но это вряд ли жрет заметное невооруженным глазом количество ресурсов.
*
DDDENISSS
15 июн 2009 в 19:07
Malcolm, вот начал я в поток записывать байты. Записал. А как перед теми байтами вписать данные? Например с кокого байта и сколько вершин.
15 июн 2009 в 19:08 / DDDENISSS (1)
*
Malcolm
15 июн 2009 в 19:17
DDDEN!SSS, ну а в чем проблема? Напиши сначала число вершин, а уже потом - сами вершины. А с какого байта - это уж как получится. Главное просто потом читать в том же порядке, в котором и записывал.
*
DDDENISSS
15 июн 2009 в 19:29
Malcolm, проблема в том, что мой конвертер не знает за ранее сколько вершин, цветов и полигонов. Он конвертирует до закрывающей скобки.
Хотя можно сначало по-вырезать строки с вершинами и положит в вектор. А потом из вектора записывать.
15 июн 2009 в 19:31 / DDDENISSS (1)
*
DDDENISSS
16 июн 2009 в 07:56
A если я допустим красный цвет конвертирую в байт, то как потом этот байт обратно в цвет перегнать? Я уже к ниму и 256, и 255 прибовлял, всё равно иногда вместо черного - белый.
*
Malcolm
16 июн 2009 в 09:31
DDDEN!SSS, seclub.org/forum/goto/8064362/ - если ты про перевод из byte в int, когда в byte содержится беззнаковое значение, то это делают строчкой
int i = b&0xFF;
16 июн 2009 в 09:31 / Malcolm (1)
*
LPzhelud
16 июн 2009 в 15:35
Malcolm, из документации класса Thread:
public static void yield() Causes the currently executing thread object to temporarily pause and allow other threads to execute. А продолжить его выполнение как?
*
Malcolm
16 июн 2009 в 16:17
LPzhelud, ты не заметил слово перед выделенным. :) Просто поток как бы снизит свой приоритет на некоторое время, но никакой полной остановки не произойдет. Это нужно, если какой-то поток забивает своими операциями другие, не такие требовательные потоки. Вообще, этот метод сильно зависит от реализации на конкретной Java-машине, и полагаться на него всерьез не стоит, это просто некоторое рекомендательное указание Java-машине во время исполнения.
*
LPzhelud
16 июн 2009 в 16:26
Malcolm, seclub.org/forum/goto/8069210/ - а. Точно ))) а после интерапт(); можно возобновить тред?
Для полноценного использования разделов сайта войдите или зарегистрируйтесь.
Общие вопросы | Загрузки Seclub | Форум | Главная
18+ © Seclub.org 2003-2026