Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
#1

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

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

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

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 12:33     Запись в char числа <-128
Посмотрите здесь:
Запись числа в массив char C++
C++ 8-битовый тип signed char может представлять значения от -128 до 127
Запись в *char элемента из массива *char[i] C++
Запись строки char в массив char C++
C++ Реализация 128-битного числа
Как в signed char помещается диапазон -128,127 ведь если 127 это 01111111, то -127 должно быть 11111111 C++
C++ Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 12:49     Запись в char числа <-128 #2
можно использовать wchar_t, только там минимальное значение 0
можно записать как массив символов, а потом преобразовывать в int
C++
1
2
3
  char ch[]="-129";
  int i;
  sscanf(ch, "%d", &i);
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
29.04.2012, 12:52     Запись в char числа <-128 #3
Тут в первую очередь вопрос: зачем это надо?
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 13:08  [ТС]     Запись в char числа <-128 #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);
боюсь посимвольно записать число в моём случае не подойдёт(
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.04.2012, 15:47     Запись в char числа <-128 #5
Почему не использовать изначально int? Ну или short int в крайнем случае.
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 16:28  [ТС]     Запись в char числа <-128 #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Почему не использовать изначально int? Ну или short int в крайнем случае.
просто считываю с помощью ifstream read а он считывает в char*... может можно как то иначе считать, чтобы действительно сразу был int?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 16:42     Запись в char числа <-128 #7
А так нельзя считать?
C++
1
2
3
4
    ...
    int v;
    is.read( (char *)&v, sizeof( int ) );
    ...
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 17:10  [ТС]     Запись в char числа <-128 #8
Цитата Сообщение от lazybiz Посмотреть сообщение
А так нельзя считать?
C++
1
2
3
4
    ...
    int v;
    is.read( (char *)&v, sizeof( int ) );
    ...
можно, но опять же из-за преобразования в char данные изменятся...
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 17:20     Запись в char числа <-128 #9
Цитата Сообщение от Flamе Посмотреть сообщение
можно, но опять же из-за преобразования в char данные изменятся...
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 17:22     Запись в char числа <-128
Еще ссылки по теме:
. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа C++
Определить, представляет ли строка собой запись целого числа, запись дробного числа C++
Сравнение двух 128-и бытных числа на разных платформах оптимальным способом C++
C++ Запись русских символов в char
Запись char в бинарном режиме C++

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

Или воспользуйтесь поиском по форуму:
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 17:22  [ТС]     Запись в char числа <-128 #10
Цитата Сообщение от lazybiz Посмотреть сообщение
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
=( ну что ж... придётся тогда так попробовать, раз иначе никак

спасибо за помощь)
Yandex
Объявления
29.04.2012, 17:22     Запись в char числа <-128
Ответ Создать тему
Опции темы

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