Что означают типы данных signed и unsigned
читаю книгу и тут есть signed char и unsigned char вроде что-то пишут про различный объем памяти, но я все равно не понимаю что это и как этим пользоваться.
читаю книгу и тут есть signed char и unsigned char вроде что-то пишут про различный объем памяти, но я все равно не понимаю что это и как этим пользоваться.
Если коротко, то это значит знаковый или беззнаковый тип. Само понятие берется из реализации хранения значения в памяти. на вашем примере signed char/unsigned char - занимают в памяти 1 байт, т.е. 8 бит и соответственно минимальное значение 0, и максимальное значение - 2^8-1=255
|1|1|1|1|1|1|1|1|
Но если вам нужны отрицательные числа, то в этом байте придется выделить один бит, указывающий знак числа (+/-)
|0|1|1|1|1|1|1|1|
^
Знак
И соответственно на само значени у вас остается 7бит, т.е. 2^7-1 = 127, и диапазон значений [-128:127]
Дополнительно обратите внимание на особенности переполнения знаковых типов - они могут менять знак (при перпеполении единица заедет в знаковый разряд
signed char c=127; // 127- 01111111
c++; // 10000000 = , или -128