Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

int('в') = -30 O_o

520
13 декабря 2007 года
inkognitum
155 / / 03.05.2006
int('в') = -30

Почему? O_o
489
13 декабря 2007 года
NeO_u
277 / / 11.10.2006
Цитата: inkognitum
int('в') = -30

Почему? O_o



Смотри Hex код этой буквы:-) он равен E2...далее при преобразовании получается следующий код FFFFFFE2...т.к. int 4 байта...первый байт представляется собой код символа (E2) все остальные FF

520
13 декабря 2007 года
inkognitum
155 / / 03.05.2006
угу спасибо.
ТОлько понять не могу... всю жизнь в с++ на Visual C++ и на досовом Borland С++ gbcfk - int(char)
и небыло никаких проблем.. находил аксикод... даже в C# работает... а вот в Borland C++ 6.0 не выдает.
489
13 декабря 2007 года
NeO_u
277 / / 11.10.2006
Цитата: inkognitum
угу спасибо.
ТОлько понять не могу... всю жизнь в с++ на Visual C++ и на досовом Borland С++ gbcfk - int(char)
и небыло никаких проблем.. находил аксикод... даже в C# работает... а вот в Borland C++ 6.0 не выдает.



Извини, но бред:-) На трех платформах Visual C++, Borland C++ 6 и CodeGear 2007 - везде выдает -30, для корректной работы сделай вот так:

 
Код:
int a = 'в';
    a&=0xFF;
14K
14 декабря 2007 года
viva
27 / / 07.04.2006
По умолчанию тип char воспринимается как signed char.
Где-то была возможность для компилятора установить умолчание
для символьных переменных как unsigned char, но что-то в CBuilder я её
не нашёл. поэтому код:
 
Код:
int a=(unsigned char)'в';

приведёт к правильному результату
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог