Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите сложить два байта / 7 сообщений из 7, страница 1 из 1
11.11.2014, 16:56
    #38802413
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
Добрый день. Есть две сущности типа Byte, bt1 и bt2, в них попадают "сырые" данные в виде бит,
нужно получить bt2(в беззнаковом виде)*256 + bt1(в беззнаковом виде). Честно говоря, с Java я совсем не знаком.
...
Рейтинг: 0 / 0
11.11.2014, 17:17
    #38802453
smackmychi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
da17, самое время идти знакомиться.
...
Рейтинг: 0 / 0
11.11.2014, 17:28
    #38802492
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
da17, я надеюсь ты понимаешь что при сложении двух 8-ми битных чисел ты получаешь
бит переноса и как следствие сумма - 9-ти битная?
...
Рейтинг: 0 / 0
11.11.2014, 17:47
    #38802520
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
mayton, да понимаю. Я оперируют тем фактом, что бита переноса нет и он в данном случае говорит о том что у нас есть еще (+127) как это было на си++, что-то вроде перевод unsigned char к int;
...
Рейтинг: 0 / 0
11.11.2014, 17:50
    #38802528
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
Коверть всё в int. Складывай. Потом распиливай сумму обратно на байты битовыми операциями.
...
Рейтинг: 0 / 0
11.11.2014, 17:56
    #38802545
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
maytonКоверть всё в int. Складывай. Потом распиливай сумму обратно на байты битовыми операциями.
Да проблема в том, что структура данных непростая. Первый байт надо умножить на определенную константу, второй байт после преобразования тоже на что-то умножить, затем все сложить. Сделал предельно бестолково
Код: sql
1.
2.
3.
4.
Integer bt2 = buff[2];
if( bt2 < 0 ){
bt2 = (-1*bt2) + 127;
}


Если что, то математик, а не программист.
...
Рейтинг: 0 / 0
11.11.2014, 18:05
    #38802566
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сложить два байта
da17, умножение положительного числа на 256=2^8 эквивалентно логическому сдвигу на 8 бит влево.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите сложить два байта / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]