| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Два char в один short |
| Автор: mrbrooks 9.11.2007, 15:23 |
| Народ! Помогите! Туплю. Как два char переобразовать в short. Приходит ко мне первый char a = 7; второй char b = 154; я делаю так: short c = (a<<8) + b; Я прав или накосячил? |
| Автор: EnergoHokum 9.11.2007, 15:30 | ||
Что именно ты с ними хочешь сделать?
|
| Автор: Fazil6 9.11.2007, 15:33 |
ну если не считать, что судя по всему все должно быть unsigned |
| Автор: MAKCim 9.11.2007, 15:36 | ||
лучше так
|
| Автор: mrbrooks 9.11.2007, 15:36 |
| EnergoHokum Не - я получаю два char как один short. И мне нужно обратно теперь эти char в один short преобразовать. |
| Автор: Sartorius 9.11.2007, 15:40 | ||
советую сразу делать анонимное объединение
Содержимое чаров зависит от того биг или литл эндиан архитектура у вас. |
| Автор: Lazin 9.11.2007, 15:41 | ||
|
| Автор: mrbrooks 9.11.2007, 15:48 | ||||
дык мне же short и не известен. потому и спрашиваю |
| Автор: EnergoHokum 9.11.2007, 15:48 |
| Т. е. у тебя short разбивается как-то на два char-а, и тебе их нужно обратно в short склеить? |
| Автор: mrbrooks 9.11.2007, 15:53 | ||
Точно комрад. Извините если не очень четко поставил вопрос. Просто запарился. |
| Автор: EnergoHokum 9.11.2007, 15:59 | ||||
В том коде, что я написал, ошибка была, нужно так:
ВотЪ. А можно и так:
|
| Автор: Lazin 9.11.2007, 16:39 | ||||
из char в short - вот-так
обратно - так
создатели стандартной библиотеки вряд-ли догадывались что memcpy для этого использовать будут |
| Автор: mrbrooks 9.11.2007, 16:40 |
| EnergoHokum Что не то все равно получается. Но куда копать - ясно. спасибо. но вопрос пока не решен... |
| Автор: mrbrooks 9.11.2007, 17:03 | ||
Все получилось вот с таким результатом. Всем спасибо.
|
| Автор: Alek86 10.11.2007, 11:38 |
| странно. мне казалось, в интел архитектуре, в слове байты хранятся сначала второй, а потом первый |
| Автор: Alek86 10.11.2007, 12:31 | ||
если будет
то дальше, естесственно, будет использоваться не точно так-же, а как обычное слово |