Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 269
#1

Преобразование 2-х char в один short int - C++

28.06.2013, 14:50. Просмотров 989. Ответов 7
Метки нет (Все метки)

Пробую преобразовать 2 char в один short int таким образом:

C++
1
2
3
4
char buf[88200];
short int skl[44100];
int kol=0;
for(int i=0;i<44100*2;i=i+2){skl[kol]=buf[i]<<8|buf[i+1];kol++;}
да что-то не получается, компилятор не согласен.
Посоветуйте, как сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 14:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Преобразование 2-х char в один short int (C++):

записать по-битого один short int в два char - C++
Здрасьте, всем. Записать побитого два char в один short int это: char char1; char char2; short int s; s=char1&lt;&lt;8|char2; А как...

Char, short, int, long: какой тип выбрать? - C++
Всем привет Читая книги по C++ столкнулся с тем, что везде пишут примерно одно и тоже. Допустим про char, short, int, long пишут что...

Двоичный дамп short и char выводится как int - C++
Доброго дня! Пытаюсь выводить двоичный дамп переменных char, short и int вот таким образом: #include &lt;iostream&gt; using namespace...

дан массив char[22] как превратить отдельные байты в int, short - C++
Дан массив char. В нем содержатся на заранее определенных местах разные типы целых(int и short). Как их грамотно выделить в отдельные...

Размер для данных (int, char, long, double, short, unsigned, float) - C++
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

Создать объединение, что содержит элементы типов char int short fload long string - C++
всем доброго времени суток! мне нужно создать объединение, что содержит элементы типов char int short fload long string. создать массив...

7
iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
28.06.2013, 15:24 #2
с чем компилятор не согласен?
1
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 269
28.06.2013, 15:27  [ТС] #3
Отладчик стопорится и выскакивает сообщение продолжить или прервать.
0
iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
28.06.2013, 15:38 #4
а массив buf вроде не инициализирован.

Добавлено через 29 секунд
может из-за этого ошибка
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.06.2013, 15:47 #5
@sergey.shuvalov, попробуй это:
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
for(int i=0;i<44100*2;i=i+2){skl[kol]=buf[i]<<8|buf[i+1];kol++;}
заменить на:
C++
1
for(int i=0;i<44100*2;i=i+2){skl[kol]=int(buf[i])<<8| int(buf[i+1]);kol++;}
Вполне возможно, что при попытке charVariable << 8 выходит 0 (но тут компилиться должно)
Или на что у вас там компилятор ругается?
1
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 269
28.06.2013, 15:51  [ТС] #6
пишет:
Необработанное исключение в "0x77a615de" в "PROGA.exe": 0xC0000005: Нарушение прав доступа при чтении "0x003e7000".
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.06.2013, 16:00 #7
@sergey.shuvalov, либо ошибка в другой части кода, которую вы не привели, либо буфер и правда не заполнялся перед использованием..
1
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 269
28.06.2013, 16:00  [ТС] #8
Всё заработало. И так и так. Причина изначально была, в том что в цикле вывода в файл, размер цикла превосходил размер массива buf. Всем спасибо.
0
28.06.2013, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 16:00
Привет! Вот еще темы с ответами:

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию - C++
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека в текущем году; б) вес человека в...

Преобразование Int в char - C++
от скуки баловался с кодом.решил проверить,можно ли сделать так? #include &lt;iostream&gt; int main(){ char b = 't'; int a =b; ...

Преобразование int к char - C++
Вот код #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream.h&gt; #include &lt;cstdio&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru