Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.12.2015
Сообщений: 41

Портирование кода с с++ на java

22.11.2019, 22:18. Показов 1047. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите почему функции дают разный результат?
данные
C++
1
2
uint32_t key[4]={0x699364AA,0x783DD4BB,0x105098CC,0xA85564DD};
unsigned char kod[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void encrypt (uint32_t* v, uint32_t* k)
{
 
    uint32_t v0 = v[0];
    uint32_t v1 = v[1];
    uint32_t sum = 0;
    uint32_t i;
 
    uint32_t delta = 0x9e3779b9;
 
 
    uint32_t k0 = k[0];
    uint32_t k1 = k[1];
    uint32_t k2 = k[2];
    uint32_t k3 = k[3];
 
 
    for (i = 0; i < 32; i++)
    {
        sum += delta;
        v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >> 5) + k1);
        v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >> 5) + k3);
    }
 
    v[0] = v0;
    v[1] = v1;
}
вызов
C++
1
encrypt ((uint32_t*)&kod,key);
результат
C++
1
0x4F,0x30,0x89,0x28,0xDF,0x1A,0xF3,0x5A


данные
Java
1
2
cc[0] = 0x1234;
        cc[1] = 0x5678;
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void encrypt(int[] v) {
 
        int v0 = v[0], v1 = v[1], sum = 0, n = 32;
        int k0 = 0x699364AA, k1 = 0x783DD4BB, k2 = 0x105098CC, k3 = 0xA85564DD; /* cache key */
        while (n-- > 0) {
            sum += 0x9E3779B9;
            v0 += ((v1 << 4) + k0) ^ (v1 + sum) ^ ((v1 >>> 5) + k1);
            v1 += ((v0 << 4) + k2) ^ (v0 + sum) ^ ((v0 >>> 5) + k3);
        }
        v[0] = v0;
        v[1] = v1;
        System.out.println(v0 + "," + v1);
 
    }
вызов
Java
1
encrypt(cc);
результат
Java
1
0x6B85AC9C,0xC897CE07
ожидал результат JAVA
Java
1
0x4F308928,0xDF1AF35A
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2019, 22:18
Ответы с готовыми решениями:

Портирование кода с Java на C#
Доброго времени суток, начал портировать код написанный на Java: public static byte stripLeadingZeros(byte in) { int stripCount...

Портирование кода Java в C#
Здравствуйте! Помогите, пожалуйста, разобраться с частью кода. Почти весь код портировал, но выводит 3 ошибки. Не понимаю, как в C#...

Портирование куска кода (класс BigIntiger) с Java в C#
Доброго времени суток. Как портировать данный код на C#? BigInteger mod = new BigInteger(1,new byte{9,8,7,6,5,4,3,2,1}); ...

2
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
22.11.2019, 23:00
потому, что 0x1020304 != 0x1234 ?
1
0 / 0 / 0
Регистрация: 11.12.2015
Сообщений: 41
23.11.2019, 10:08  [ТС]
Спасибо! иногда нужно быть более внимательным,
C++
1
unsigned char kod[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
==
Java
1
2
cc[0] = 0x4030201;
         cc[1] = 0x8070605;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2019, 10:08
Помогаю со студенческими работами здесь

Портирование кода с c++ на c#
Добрый день! Помогите, пожалуйста, перевести на с# такой код#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;conio.h&gt; ...

Портирование кода с С# на С++
Доброго времени суток! Помогите, пожалуйста, перевести на с++ такой код(желательно очень близко к оригиналу!!!): using System; using...

Портирование кода
Добрый день, часто вижу, что при портировании кода с ПК версии до мобильной версии, вставляют &quot;костыли&quot; #ifdef...

Портирование сервера с C# на Java
Доброго времени суток! Вообщем дела обстоят так: С С# раньше никогда не встречался :) С Java знаком(уровень, примерно чуть выше...

Портирование кода в С++ Builder
Всем привет! Скажите, возможно ли портировать код в Builder. Код был написан в VS ( соответственно и компилятор vs ). Использую из std...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru