С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
unknown

Как же быть с форматом записи int

01.11.2009, 10:29. Показов 1595. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема возникла (собственно не проблема, а вопрос) с сохранением
двоичных данных в java. Например при использовании

int NUM = 1000;
DataOutputStream dos = ...;
dos.writeInt(NUM);

в файл он запишет значение 03E8, хотя некоторые форматы
хранения как раз наоборот должны хранить перевернутые значения
разрядов числа: <старший><младший>, то есть в нашем случае это
будет число E803. Но средствами java это число
прочитается как 59395, а не как 1000.

Вопрос - почему так? Как в java учесть специфику сохранения числа когда надо - в перевернутом, а когда надо в прямом виде? Или для этого потребуются дополнительные ухищрения типа сначала прочитать 4 байта для числа int, а затем их вручную перевернуть?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2009, 10:29
Ответы с готовыми решениями:

Как при записи названий файлов в ListView, поставить их иконки рядом по расширению форматом 16х16?
Как при записи названий файлов в ListView, поставить их иконки рядом по расширению форматом 16х16. А то я раньше делал то иконки залетали...

Error С2664. Параметр 1 не может быть преобразован из 'int' в 'int [][10]'
Добрый день! Компилятор &quot;ругается&quot; на описание функции. Как устранить данную проблему самому не знаю. Заранее благодарю за помощь! ...

Форматом записи в файл
Господа, столкнулся с таким вот траблом... Написал програмку &quot;Записать в файл прямого доступа N действительных чисел. Найти наибольшее из...

7
0 / 0 / 0
Регистрация: 05.04.2009
Сообщений: 78
02.11.2009, 11:06
Сделайте так, тогда что запишется то и прочитается

Integer NUM = new Integer(1000);
ObjectOutputStream dos = new ObjectOutputStream(fileout);
dos.writeObject(NUM);

т.е. сериализация это механизм учитывающий различное представление
битов в слове, на разных машинах.
0
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
02.11.2009, 11:36
На сколько я знаю, устоявшимся стандартом предполагается, что младшие разряды записываются на младших адресах. Поэтому и кажется, что байты в словах переставлены местами. Короче 'визуально' при побайтовом чтении слева направо слово 1234 будет записано 3412. И это правильно ) writeInt() разве не так пишет?
0
unknown
03.11.2009, 10:29
За сериализацию конечно спасибо, но это не совсем то. Ведь при записи Integer записывается также и сигнатура объекта.
Задача совершенно в другом:
1) есть бинарный файл, содержащий 'перевернутые записи чисет типа int', т.е. число 1000 записано как E803.
2) Надо: прочитать этот бинарный файл. Естественно метод readInt() не прочитает правильно число, т.к. данный метод ориентирован на 'прямое представление чисел'.
3) Я читал примитивными методами: сначала читал побайтно методом readByte() сначала E8h, затем 03h, а потом вручную переворачивал и формировал число 3E8h. Данный вариант работает во-первых медленнее, чем нативный метод readInt().
4) Вопрос: есть ли нативный метод в java, подобный методу readInt(), но читающий 'перевернутые'.
Зараннее спасибо.
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
03.11.2009, 15:28
Предлагаю пристально посмотреть на пакет java.nio.* и java.nio.chanales.*. Конкретно FileChannel.
0
unknown
05.03.2010, 12:23
Но ведь этот класс абстрактный. Как же его использовать и где реализация?
Barsik
08.03.2010, 05:47
java.nio.ByteBuffer

budder.order(ByteOrder.LITTLE_ENDIAN);
ByteOrder b = buffer.order()
Предупреждение метод order не использует соглашение об именах set/get
Core Java 2 Volume I - Fundamentals.
gl
unknown
14.03.2010, 14:51
спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2010, 14:51
Помогаю со студенческими работами здесь

Terminate called after throwing an instance of 'int' Aborted -Ошибка, как быть?
Здравствуйте! Выдается такая ошибка, не понимаю почему. terminate called after throwing an instance of 'int' Aborted команда:...

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int Funkz(int a) int Funkz(int a, int b, int...

Как быть с переполнением очереди при мультипоточной записи?
Всем привет! Вопрос такой: нужно реализовать сжатие файла в мультипоточной среде. Логика такая: один поток читает блок, кладёт в...

Размерность int или как из signed int сделать unsigned int?
Добрый день. Есть старая база уже с некоторыми данными. При развёртывании её на одном из тестовых серверов столкнулся с неожиданной...

Как правильно перевести int и string в *char для записи в SQLlite?
Доброго времени суток! Вопрос такой: Каким образом обычно переводятся значения типа int и string в SQL-запрос типа *char ? Вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru