163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
|||||||||||
1 | |||||||||||
Как получить из двух byte один int?16.08.2016, 08:30. Показов 6586. Ответов 55
Метки нет (Все метки)
Собственно вот, есть две переменные byte
0
|
16.08.2016, 08:30 | |
Ответы с готовыми решениями:
55
Как из типа данных BYTE получить int и вывести в консоль, GetRValue(color) Как заполнить один int пустой массив другим int массивом ? Как записать и прочитать int (4 byte) из char[] Как получить int из массива byte |
16.08.2016, 14:23 | 41 |
Это анализатор в компиляторе TI. Но решения во всём интернете не видится.
-> Похожий вопрос по преобразованию массива байт в другой тип.
0
|
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
|
||||||
16.08.2016, 14:25 | 42 | |||||
а где взять такой компилятор злой?
вот такой код не компилируется даже?
0
|
16.08.2016, 14:30 | 44 |
Rius, а вы можете переключить анализатор на более позднюю версию стандарта мисры? 2012 к примеру.
0
|
Babysitter
|
16.08.2016, 14:43
#46
|
Не по теме: жесть какая похоже они просто кричат нам, что такая задача вообще не должна появляться перед нами, потому как решить ее оставшись в пределах этого адского стандарта невозможно. нужно смотреть, как к нам вообще попадает это число в разобраном виде, может так и не должно быть? может можно загнать в uint32_t, а потом попробовать битовыми операциями поковырять?
0
|
Rius
|
16.08.2016, 15:21
#47
|
Не по теме: Babysitter, в той области, где возник этот стандарт, лучше перебдеть.
0
|
Модератор
3388 / 2160 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
16.08.2016, 15:32 | 48 |
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
16.08.2016, 16:34 | 49 |
1
|
245 / 139 / 53
Регистрация: 23.11.2015
Сообщений: 394
|
|
16.08.2016, 19:47 | 50 |
почитаю вечерком стандарт, если таки да, то это предательство со стороны плюсов
в чистом си можно было, тут зависит вроде от времени жизни как-то. напишу точнее потом
0
|
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
||||||
17.08.2016, 20:31 [ТС] | 52 | |||||
Ладно, следующая проблема:
имеем адрес в памяти, например 0x004532. Как представить это число в byte, чтобы:
0
|
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
|
||||||
17.08.2016, 20:40 | 53 | |||||
yurickas,
0
|
17.08.2016, 20:44 | 54 |
Если этот адрес (числовое значение) записано в переменную, то определяем (или на основе сакрального знания хардкодим) порядок хранения байт (endianness), и в соответствии с ним и размером переменной в которой хранится адрес, выдираем байты, откастовав адрес к указателю на беззнаковый чар. Принцип и подсказка здесь: Функция is_little_endian
0
|
163 / 138 / 35
Регистрация: 25.11.2015
Сообщений: 910
|
|
18.08.2016, 07:15 [ТС] | 55 |
Там фокус в чем. Пишу программу для диагностики авто. Есть функция чтения прошивки ЭБУ. Формируется пакет данных по байтам. В пакете байт команды и байты параметров команды. Так вот, в параметрах команды идут 4 байта. Первые 3 - это адрес в памяти ЭБУ с которого я хочу считать данные. Представлены они как написал выше. Четвертый - сколько байт хочу считать.
Так вот, чтобы хардкорить надо иметь число с размерностью 3 байта, а потом его уже разбивать на байты. Ну, это так, на будущее. Сейчас написал рабочую библиотеку на плюсах, ибо на шарпе было много проблем с маршалингом. Сейчас надо пробовать написать ее на CLI чтобы дальше работать с шарпом.
0
|
18.08.2016, 07:17 | 56 |
0
|
18.08.2016, 07:17 | |
18.08.2016, 07:17 | |
Помогаю со студенческими работами здесь
56
Варианты конвертации bool/byte/int в byte/int Как переконвертировать int в byte[]? Что делает Read(byte[] buffer, int offset, int count) метод класса Stream Dictionary<int, int> получить наибольшее значение value (втрого int) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |