Wednesday, July 18, 2018

c++ - What is an unsigned char?



In C/C++, what an unsigned char is used for? How is it different from a regular char?


Answer



In C++, there are three distinct character types:




  • char

  • signed char

  • unsigned char




If you are using character types for text, use the unqualified char:




  • it is the type of character literals like 'a' or '0'.

  • it is the type that makes up C strings like "abcde"



It also works out as a number value, but it is unspecified whether that value is treated as signed or unsigned. Beware character comparisons through inequalities - although if you limit yourself to ASCII (0-127) you're just about safe.




If you are using character types as numbers, use:




  • signed char, which gives you at least the -127 to 127 range. (-128 to 127 is common)

  • unsigned char, which gives you at least the 0 to 255 range.



"At least", because the C++ standard only gives the minimum range of values that each numeric type is required to cover. sizeof (char) is required to be 1 (i.e. one byte), but a byte could in theory be for example 32 bits. sizeof would still be report its size as 1 - meaning that you could have sizeof (char) == sizeof (long) == 1.


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...