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

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

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

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

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

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

Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 12:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в char числа <-128 (C++):

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

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

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

Запись в *char элемента из массива *char[i] - C++
Есть динамический массив, например char *drives = {&quot;A:&quot;, &quot;B:&quot;, &quot;C:&quot;, &quot;D:&quot;, &quot;E:&quot;, &quot;F:&quot;, &quot;G:&quot;, &quot;H:&quot;, &quot;I:&quot;, &quot;J:&quot;, &quot;K:&quot;, &quot;L:&quot;,&quot;M:&quot;, &quot;N:&quot;,...

Запись строки char в массив char - C++
Глупый вопрос, но что поделать, многое забыл... Хочу записть строку типа char в массив строк типа char, но выдает ошибку что &quot;невозможно...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Venzo
125 / 123 / 4
Регистрация: 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
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
29.04.2012, 12:52 #3
Тут в первую очередь вопрос: зачем это надо?
1
Flamе
9 / 9 / 0
Регистрация: 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
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
29.04.2012, 15:47 #5
Почему не использовать изначально int? Ну или short int в крайнем случае.
1
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 16:28  [ТС] #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Почему не использовать изначально int? Ну или short int в крайнем случае.
просто считываю с помощью ifstream read а он считывает в char*... может можно как то иначе считать, чтобы действительно сразу был int?
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 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 / 0
Регистрация: 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
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 17:20 #9
Цитата Сообщение от Flamе Посмотреть сообщение
можно, но опять же из-за преобразования в char данные изменятся...
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
1
Flamе
9 / 9 / 0
Регистрация: 25.10.2009
Сообщений: 152
29.04.2012, 17:22  [ТС] #10
Цитата Сообщение от lazybiz Посмотреть сообщение
Если формат исходный должен быть именно char то обрезай их до значений [-128, 127]. Другого выхода у тебя нет.
=( ну что ж... придётся тогда так попробовать, раз иначе никак

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

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

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

Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа - C++
Дана строка.Необходимо определить ,представляет ли она собой запись целого числа,записать дробного числа.Считайте ,что дробная часть...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа - C++
срочно помогите пожалуйста


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.04.2012, 17:22
Ответ Создать тему
Опции темы

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