|
1 / 1 / 1
Регистрация: 13.03.2012
Сообщений: 426
|
||||||
Запись байтов в массив char22.05.2017, 16:47. Показов 8929. Ответов 23
Метки нет (Все метки)
Есть переменная типа
в 3 байт число от 1-10 в 4-5 байт число от 0 до 360 в 6-7 байт число от 0 до 360.
0
|
||||||
| 22.05.2017, 16:47 | |
|
Ответы с готовыми решениями:
23
Запись аудиофайла в массив байтов Запись звука в массив байтов Запись строки char в массив char |
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 22.05.2017, 16:52 | |
|
0
|
|
| 22.05.2017, 16:55 | ||
|
1. Можешь получать указатели на i-е элементы твоего байтового массива, перекастивать их к указателям на инты и писать инты по ним. Если верить, что в чаре всегда 1 байт, что в инте у тебя окажется 2 байта, то сработает - массив гарантирует последовательное расположение в памяти.
2. Можешь выделять хай/лоу байты твоих интов и писать их сразу в нужные элементы массива. Единственно что - надо будет узнать, литл или биг эндиан система у тебя, и учитывать порядок байт. Или сделать какую-нибудь проверку и по ее результатам писать в нужном порядке. Добавлено через 1 минуту Добавлено через 1 минуту ЗЫ а еще, говорят, можно накостылить структуру с полями нужных типов, и писать туда, горя не зная. Если сделать ее поля упакованными, то потом ее точно так же можно будет читать как последовательный массив байт.
0
|
||
|
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
|
|
| 22.05.2017, 17:41 | |
|
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 22.05.2017, 18:23 | |
|
1
|
|
| 22.05.2017, 18:36 | |||
![]()
0
|
|||
|
|
|||
| 22.05.2017, 18:42 | |||
![]() char 1 none –128 to 127 by default 0 to 255 when compiled by using /J https://msdn.microsoft.com/en-... 49ktz.aspx
0
|
|||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 22.05.2017, 18:57 | |
|
1
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||||||
| 22.05.2017, 19:38 | |||||||||||
Сообщение было отмечено Семан как решение
Решение
Но иногда компиляторы с включенной оптимизацией начитают это место глотать, получается хз что. Лучше так
1
|
|||||||||||
|
442 / 99 / 42
Регистрация: 04.10.2011
Сообщений: 359
|
|
| 22.05.2017, 19:53 | |
|
0
|
|
|
|
||||||
| 22.05.2017, 20:29 | ||||||
|
TRam_, во-первых надо прагму выставлять, чтобы предотвратить выравнивание элементов структуры, во-вторых обращаться к элементам структуры нужно все-таки трехэтажно, а в-третьих можно использовать unsigned, чтобы использовать знаковый бит в качестве числового. Правда, мы не знаем, будут ли у ТС отрицательные числа. Можно, например, так:
1
|
||||||
|
53 / 31 / 13
Регистрация: 21.05.2017
Сообщений: 109
|
|
| 22.05.2017, 20:40 | |
|
palva, нужно заметить, что запись в одно "поле" union и чтение из другого приводит к неопределенному поведению.
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||||||||
| 22.05.2017, 20:43 | ||||||||
|
Да... Что ещё я пропустил, тут у нас должно быть так
Добавлено через 1 минуту
0
|
||||||||
|
53 / 31 / 13
Регистрация: 21.05.2017
Сообщений: 109
|
|
| 22.05.2017, 20:46 | |
|
TRam_, такое поведение разрешено в C, но для C++ - это приведет к неопределенному поведению. Советую почитать соответствующую документацию.
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 22.05.2017, 20:50 | ||
|
MasterOfAlteran, из MSDN
0
|
||
|
53 / 31 / 13
Регистрация: 21.05.2017
Сообщений: 109
|
|
| 22.05.2017, 21:08 | |
|
TRam_, причем здесь это? Почитайте стандарт языка, там всё написано.
Добавлено через 16 минут О! Даже на этом форуме нашлась тема: Приведение указателя базового типа
0
|
|
|
|
|
| 22.05.2017, 21:18 | |
|
MasterOfAlteran, Тогда не очень понятно, зачем в C++ оставлен union. union как раз и применяется для того, чтобы одни и те же данные записывать одним типом, а читать другим. Другое дело, что в разных архитектурах такие программы могут работать по-разному. Компилятор C++ не может это контролировать. В этом смысле даже на C такой код приведет к неопределенному поведению.
0
|
|
| 22.05.2017, 21:18 | |
|
Помогаю со студенческими работами здесь
20
Считывание из текстбоксов байтов и запись в массив Сериализация изображения в массив байтов и запись в *.pas Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|