Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Что делать если нужен unsigned


Автор: Invisible 1.5.2008, 21:29
Здравствуйте, есть у меня задача : считать из файла 16 бит , произвести умножение по модулю 2^16 и записать в файл. Как делалось в C++: брался тип unsigned 16 бит и всё работало, если не ошибаюсь 16 бит в си это int. В джаве 16, опять же , если не ошибаюсь - Short. Что делать, ведь unsigned int принимает нужные мне значения от 0 до 65536, а Short хоть и является 16 битным, но принимает от -32767 до 32767. Есть конечно тип char (0 - 65536) но над ним же не проведёшь операцию умножения.  Надеюсь понятно описал задачу. Хотелось бы знать, как правильно это всё сделать.

Автор: LSD 1.5.2008, 21:47
Код

short s = ...;
int i = (s & 0xFFFF) * 33;
s = (short) (i & 0xFFFF);

Автор: Invisible 1.5.2008, 22:46
LSD, спасибо, там ток поидее в последнее строчке int на short сменить надо.

Автор: LSD 2.5.2008, 18:43
Да, исправил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)