Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Flamе
9 / 9 / 1
Регистрация: 25.10.2009
Сообщений: 152
1

Запись в char числа <-128

29.04.2012, 12:33. Просмотров 2341. Ответов 9
Метки нет (Все метки)

Всем привет! Подскажите пожалуйста, как в переменную типа char записать число -129, причем чтобы потом его можно было бы прочитать без ошибок обратно в int?

Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 12:33
Ответы с готовыми решениями:

Запись числа в массив char
Нужно записать int число в виде char. То есть число записать по битам в...

8-битовый тип signed char может представлять значения от -128 до 127
8-битовый тип signed char может представлять значения от -128 до 127 Кто...

Что означает такая запись char *smt=new char[1]?
что означает такая запись char *smt=new char?

Запись в *char элемента из массива *char[i]
Есть динамический массив, например char *drives = {&quot;A:&quot;, &quot;B:&quot;, &quot;C:&quot;, &quot;D:&quot;,...

Запись строки char в массив char
Глупый вопрос, но что поделать, многое забыл... Хочу записть строку типа char...

9
Venzo
125 / 123 / 16
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 12:49 2
можно использовать wchar_t, только там минимальное значение 0
можно записать как массив символов, а потом преобразовывать в int
C++
1
2
3
  char ch[]="-129";
  int i;
  sscanf(ch, "%d", &i);
1
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
29.04.2012, 12:52 3
Тут в первую очередь вопрос: зачем это надо?
1
Flamе
9 / 9 / 1
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 13:08  [ТС] 4
ну в общем это нужно для встраивания ЦВЗ в аудио сигнал. данные аудио-сигнала через ifstream read считываются в массив char. затем я их перевожу в int, делаю необходимые преобразования и в итоге получается массив, который нужно перевести обратно в чар и записать обратно в файл. и возникает проблема: числа выходящие за диапазон char записываются неверно.... вот=(

Добавлено через 1 минуту
Цитата Сообщение от ZoRT Посмотреть сообщение
можно использовать wchar_t, только там минимальное значение 0
можно записать как массив символов, а потом преобразовывать в int
C++
1
2
3
  char ch[]="-129";
  int i;
  sscanf(ch, "%d", &i);
боюсь посимвольно записать число в моём случае не подойдёт(
0
Toshkarik
1149 / 866 / 90
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
29.04.2012, 15:47 5
Почему не использовать изначально int? Ну или short int в крайнем случае.
1
Flamе
9 / 9 / 1
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 16:28  [ТС] 6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Почему не использовать изначально int? Ну или short int в крайнем случае.
просто считываю с помощью ifstream read а он считывает в char*... может можно как то иначе считать, чтобы действительно сразу был int?
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 16:42 7
А так нельзя считать?
C++
1
2
3
4
    ...
    int v;
    is.read( (char *)&v, sizeof( int ) );
    ...
0
Flamе
9 / 9 / 1
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 17:10  [ТС] 8
Цитата Сообщение от lazybiz Посмотреть сообщение
А так нельзя считать?
C++
1
2
3
4
    ...
    int v;
    is.read( (char *)&v, sizeof( int ) );
    ...
можно, но опять же из-за преобразования в char данные изменятся...
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 17:20 9
Цитата Сообщение от Flamе Посмотреть сообщение
можно, но опять же из-за преобразования в char данные изменятся...
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
1
Flamе
9 / 9 / 1
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 17:22  [ТС] 10
Цитата Сообщение от lazybiz Посмотреть сообщение
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
=( ну что ж... придётся тогда так попробовать, раз иначе никак

спасибо за помощь)
0
29.04.2012, 17:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 17:22

Сдвиг 128-битного числа
Есть строчка размером 16 байт.Как сдвинуть бинарное представление этой строки...

Реализация 128-битного числа
Здравствуйте. В институте дали задание: реализовать стек типа &quot;128-битного&quot;...

Как в signed char помещается диапазон -128,127 ведь если 127 это 01111111, то -127 должно быть 11111111
Добрый вечер! ломаю голову над тем, как в signed char помещается диапазон...


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

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

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