Как преобразовать char в int
столкнулся с такой проблемой - мне в С++ надо преобразовать тип char в тип int, но, теми способами которые я знаю, преобразования проходят с изменениями. Например, char C = 500, при переводе переменной С в int я получаю значение 244. Подскажите, как написать автоперевод, чтобы при перескоке через 255 отсчет не начинался с нуля.
Вот проанализируйте эту программу и сделайте выводы:
#include <iostream>
using namespace std;
void main()
{
char c=200;
cout << int(c) << endl;
c=500;
cout << int(c) << endl;
cout << (unsigned)(unsigned char)c << endl;
}
Формально - явным преобразованием типа
с=(char)i;
i=(int)c;
Но в разных операционках char может быть и знаковым и беззнаковым - тут общее не годится и надо смотреть на конкретные ОС и компилятор.
---------
А про переход через 255:
char просто не бывает больше 255. под него всего 1 байт отведён. естественно при переполнении и выносе единицы за предел в нём остаются только нули, а при присвоении чару целого целое обрезается и остаётся только последний байт