Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с типом char 
:(
    Опции темы
titanrem
Дата 4.11.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Код
#include <iostream>
using namespace std;

void main() 
{
    for(char i=0;i<256;i++)
        cout<<i<<"   ";
    cout<<endl;
}



Помогите, почему данный код выполняется бесконечно долго. Я знаю, что тип char может хранить числа от -127 до 128.


M
bsa
пользуйтся кнопкой "Код"


Это сообщение отредактировал(а) bsa - 6.11.2008, 00:49
PM MAIL   Вверх
Andrey44
Дата 4.11.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Не пойму смысла использовать в char вместо int.
Расскажите - зачем?
Код

#include <iostream>
using namespace std;

void main() 
{
    for(int i=0;i<256;i++)
        cout<<i<<"   ";
    cout<<endl;
}

Неужели так хуже?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Fazil6
Дата 4.11.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(titanrem @  4.11.2008,  13:43 Найти цитируемый пост)
Помогите, почему данный код выполняется бесконечно долго. Я знаю, что тип char может хранить числа от -127 до 128.

ну вот ты сам ответил на свой вопрос. Если у тебя i принимает максимальное значение 128, то условие не выхода из цикла i<256 выполняется всегда, сколько не инкрементируй. 128 < 256
PM MAIL   Вверх
IKM2007
Дата 4.11.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 3
Всего: 40



Вообще то когда i становится 127, после i++ становится -128, потом -127, и т.д.
То есть как бы ходит кругом.

Добавлено через 42 секунды
Цитата(titanrem @  4.11.2008,  13:43 Найти цитируемый пост)
-127 до 128.

-128 до 127


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
titanrem
Дата 4.11.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Тогда такой вопрос. Если char это числа от -128 до 127, то  разве бывают символы с отрицательными номерами в таблице ASCII .
PM MAIL   Вверх
mes
Дата 4.11.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(titanrem @  4.11.2008,  18:14 Найти цитируемый пост)
Тогда такой вопрос. Если char это числа от -128 до 127, то  разве бывают символы с отрицательными номерами в таблице ASCII . 

Вы путаете представления ячейки памяти . Один и тот же участок памяти можно трактовать по разному.
к примеру 8 бит можно трактовать как
1. unsigned char  - тогда значения представлены в диапозоне 0..255  и это значение используется как смещение в таблице ASCII-символов.
2. signed char - в диапозоне -128..127
3. bool - false если ноль и true в другом случае
4. пользовательское описание , например так 
Код

struct  { int   a:2;
              int   b:3;
              int   c:3;
           };// итого 8 бит хранят три перемменые.

5...





--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.