![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Здравствуйте.
Есть две программы, написанные на C++ и Java. Они пишут числа в бинарный файл. Необходимо, чтобы они могли читать данные, записанные друг другом. Но вот проблема: Java пишет так Код:
Код:
И как тогда на Java писать числа так же как в WinAPI, чтобы программа на С тоже могла их читать? Понятно что можно переворачивать, но как? |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
Java сохраняет данные с порядком байтов Big Endian, а WinAPI, похоже, Little Endian. Не знаю, как именно правильно (быстро и эффективно) подгонять порядок на Java, но теперь вам будет что погуглить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 | |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
WinAPI тупо пишет блок памяти. Как числа в памяти лежат, так и пишет.
А вот почему Java переворачивает - надо смотреть Действительно, прямо в доке написано Цитата:
Последний раз редактировалось Black Fregat; 22.04.2020 в 08:17. |
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
Код:
Код:
|
|
![]() |
![]() |
![]() |
#5 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]() Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
просто надо было добавить метод
Код:
Я думал, что этот метод уже где-то в базовых классах прописан. Пардон, ошибочка вышла. Надо вот так: Код:
В чем разница, две или три? Последний раз редактировалось BLACK_RAIN; 23.04.2020 в 11:44. |
![]() |
![]() |
![]() |
#7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,428
|
![]()
>>> - беззнаковый сдвиг (в старшие биты всегда будет записываться 0), а >> - знаковый (в старшие биты запишется значение знакового бита). В данном случае срабатывают одинаково из-за масок, которые отбрасывают те биты, в которых будет различие.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск hex значения в бинарном файле (большого объема) | witia03 | Общие вопросы Delphi | 10 | 23.05.2012 20:25 |
сортировка структуры в бинарном файле | миклух | Общие вопросы C/C++ | 0 | 16.04.2012 10:00 |
сортировка структур в бинарном файле | vvsh | Общие вопросы C/C++ | 1 | 25.06.2011 16:04 |
Сортировка списка в бинарном файле | J_D | Помощь студентам | 0 | 28.05.2011 10:34 |
Поиск числа в бинарном файле. | mazak | Общие вопросы C/C++ | 5 | 18.02.2010 12:05 |