int a = 'в';
a&=0xFF;
int('в') = -30 O_o
Почему? O_o
Цитата: inkognitum
int('в') = -30
Почему? O_o
Почему? O_o
Смотри Hex код этой буквы:-) он равен E2...далее при преобразовании получается следующий код FFFFFFE2...т.к. int 4 байта...первый байт представляется собой код символа (E2) все остальные FF
ТОлько понять не могу... всю жизнь в с++ на Visual C++ и на досовом Borland С++ gbcfk - int(char)
и небыло никаких проблем.. находил аксикод... даже в C# работает... а вот в Borland C++ 6.0 не выдает.
Цитата: inkognitum
угу спасибо.
ТОлько понять не могу... всю жизнь в с++ на Visual C++ и на досовом Borland С++ gbcfk - int(char)
и небыло никаких проблем.. находил аксикод... даже в C# работает... а вот в Borland C++ 6.0 не выдает.
ТОлько понять не могу... всю жизнь в с++ на Visual C++ и на досовом Borland С++ gbcfk - int(char)
и небыло никаких проблем.. находил аксикод... даже в C# работает... а вот в Borland C++ 6.0 не выдает.
Извини, но бред:-) На трех платформах Visual C++, Borland C++ 6 и CodeGear 2007 - везде выдает -30, для корректной работы сделай вот так:
Код:
Где-то была возможность для компилятора установить умолчание
для символьных переменных как unsigned char, но что-то в CBuilder я её
не нашёл. поэтому код:
Код:
int a=(unsigned char)'в';
приведёт к правильному результату