powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
11 сообщений из 11, страница 1 из 1
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017176
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Код: java
1.
byte[] operInfoKSU = {0x01,0xA6,0x00,0x2A,0x00,0xF4,0x27,0x0F,0x01,0xFE,0x00,0x4F,0x00,0x59,0x01,0xC5,0x00,0x00};


Понятно, что можно 0xA6 перевести в число со знаком.
Можно конечно использовать и short, но мне этот массив потом через
Код: java
1.
 System.arraycopy();

копировать в другой массив.
А short будет вставлять ненужные нулевые байты.
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017181
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge
А short будет вставлять ненужные нулевые байты.
подробнее, чем этомешает или не нравится?
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017189
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
А short 2 байта, разве нет.
Поэтому запись
Код: java
1.
short[] operInfoKSU = {0x01,0xA6,0x00,0x2A,0x00,0xF4,0x27,0x0F,0x01,0xFE,0x00,0x4F,0x00,0x59,0x01,0xC5,0x00,0x00};

на самом деле в памяти будет выглядеть примерно так: 0x01 00 A6 00 00 00 F4 00 27 00 и т.д.
И если копировать это в другой байтовый массив через System.ArrayCopy, то я опасаюсь, что получу ненужные нулевые байты.
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017190
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge,
Тебе жалко две строки копирования написать чтобы продемонстрировать проблему?
Программист?
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017193
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge
опасаюсь, что получу
допуск на 220 вольт получил?))
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017199
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Belotsky Serge
опасаюсь, что получу
допуск на 220 вольт получил?))


Надо проверить. В Дельфи 100% получу нулевые байты. Как оно будет в Java - не знаю. Как проверю - отпишусь.
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017201
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge,

Другое дело.
Дельфи напрямую с памятью работает. А java нет.
Удачи!
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017204
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Belotsky Serge,

Другое дело.
Дельфи напрямую с памятью работает. А java нет.
Удачи!


Компилятор выдает предупреждение (см. аттач). Вот и у меня сомнения, что все пройдет гладко.
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017206
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belotsky Serge

Компилятор выдает предупреждение (см. аттач). Вот и у меня сомнения, что все пройдет гладко.

даже если и будет работать (я бы сначала проверил)
как минимум выглядит это коряво

IMHO
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017217
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO

1. другого варианта в гугле не нашел (((

byte[] operInfoKSU = {0x01,(byte)0xA6,0x00,0x2A,0x00,(byte)0xF4,0x27,0x0F,0x01,(byte)0xFE,0x00,0x4F,0x00,0x59,0x01,(byte)0xC5,0x00,0x00};

2. System.arraycopy

Exception in thread "main" java.lang.ArrayStoreException: arraycopy: type mismatch: can not copy short[] into byte[]
...
Рейтинг: 0 / 0
как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
    #40017233
Belotsky Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
IMHO

1. другого варианта в гугле не нашел (((

byte[] operInfoKSU = {0x01,(byte)0xA6,0x00,0x2A,0x00,(byte)0xF4,0x27,0x0F,0x01,(byte)0xFE,0x00,0x4F,0x00,0x59,0x01,(byte)0xC5,0x00,0x00};

2. System.arraycopy

Exception in thread "main" java.lang.ArrayStoreException: arraycopy: type mismatch: can not copy short[] into byte[]

Ваше изменение работает!
Я тоже получил Exception при выполнении копирования short[] в byte[].

Всем спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как записать однобайтовый массив значений от 0..255 (а не как -128..127)?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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