O que é unsigned char em C++ e como ele difere do char comum?
Olá, colegas! Comecei a estudar C++ e me deparei com uma confusão. Nos livros didáticos, encontro constantemente os tipos `char` e `unsigned char`. À primeira vista, ambos armazenam caracteres, mas sinto que há uma diferença, e ela é importante.
Escrevi um exemplo simples:
```cpp
#include
int main() {
char c = 255;
unsigned char uc = 255;
std::cout << "char: " << (int)c << std::endl;
std::cout << "unsigned char: " << (int)uc << std::endl;
return 0;
}
```
No meu sistema (Windows, Visual Studio), a primeira saída dá -1, e a segunda — 255. Eu esperava que ambos fossem 255. Por que isso acontece? E em quais casos devo usar `unsigned char` em vez do `char` comum?
Li que `char` pode ser signed ou unsigned dependendo do compilador, mas isso soa meio incerto. Também ouvi dizer que `unsigned char` é usado para trabalhar com bytes e dados brutos, enquanto `char` é para texto. Mas caracteres não são os mesmos bytes?
Expliquem, por favor, de forma simples, com exemplos.
No answers yet.
Faça login para deixar uma resposta