2012-05-30 3 views
1

У меня есть следующий код в java, который мне нужно преобразовать в C++, чтобы иметь возможность кодировать unsigned int.encoding unsigned int

public static int enc_uint32be(int i, byte[] dst, int di) { 
     dst[di++] = (byte)((i >> 24) & 0xFF); 
     dst[di++] = (byte)((i >> 16) & 0xFF); 
     dst[di++] = (byte)((i >> 8) & 0xFF); 
     dst[di] = (byte)(i & 0xFF); 
     return 4; 
} 

Я новичок в java. Я надеюсь, что несколько экспертов на этом форуме знают оба языка - может кто-то мне помочь с переводом.

ответ

3

Это зависит от типа данных, которые вы планируете использовать, но если вы просто изменить:

byte[] dst 

в

unsigned char dst[] 

в объявлении функции, то она должна вести себя так же (и измените использование байта в функции на unsigned char).

+0

спасибо, это для цен на акции, поэтому я считаю, что char должен работать. Я уверен, что у меня будет больше вопросов, поскольку я пытаюсь преобразовать больше кода. – user1155299

+1

Возможно, вас заинтересует 'typedef unsigned char byte;', что немного облегчит часть преобразования. –

+0

@ MooingDuck, спасибо, это хорошее предложение – user1155299

1

На самом деле код в Java практически то же самое в C++ с небольшими изменениями:

  • байт не является допустимым типом в C++, эквивалент это символ без знака
  • Тип параметра Массив должен быть переработан, как @MarkWilkins упоминается.
+0

thanks..I уверен, что я опубликую больше вопросов по конверсии – user1155299

Смежные вопросы