Программирование на языке C. Знаковые и беззнаковые значения

Все целые типы – short, char, int и long - являются знаковыми по умолчанию. Другими словами, переменные этих типов могут иметь положительные и отрицательные значения. Можете использовать слово signed, чтобы явно указать на это: signed int plusOrMinus;

Простой тип int означает то же самое, слово signed обычно не пишут.

Если вам не обязательно хранить отрицательные значения, можно перед целым типом применять слово unsigned. Вот несколько

примеров беззнаковых переменных:

unsigned char oneChar; unsigned short oneShort; unsigned int onelnt; unsigned long oneLong;

Поскольку в беззнаковых переменных отрицательные значения не запоминаются, они могут представлять вдвое больше положительных значений, чем их знаковые эквиваленты. Загляните в стандартный библиотечный заголовочный файл limits.h, чтобы узнать точные диапазоны значений целых типов данных для вашего типа компилятора.

Поскольку переменные целых типов занимают фиксированный объем памяти, при использовании в выражениях они, подобно автомобильному одометру, могут переполняться, доходя до максимального значения и потом сбрасываться в нуль. Например, если беззнаковая целая переменная (unsigned int) i равна 15000, то выражение j = i + 60000;

присвоит беззнаковой целой переменной j значение 9464, а не 75000, которое лежит за границами представления значений типа unsigned int. т.е. результат «сворачивается», чтобы поместиться в меньшее пространство. Это не ошибка, а специальный эффект, позволяющий избежать затрат времени на проверку возможного переполнения. Однако рассчитывать на эффект «сворачивания» значения - это плохая практика. Ведь ваши программы могут работать и в других системах, где используется другой объем памяти для представления значений типа int.

Замечание. При переполнении беззнаковые целые переменные обнуляются. Знаковые переменные обычно приводятся к максимальному в их диапазоне отрицательному числу.

Дорогие друзья, мы все уже привыкли, что при выходе из строя любой мало мальски вычислительной техники сразу же бежим в сервис. Но если разобраться, все не так сложно и страшно. К примеру дисплей на ноутбуке можно заменить вполне себе самостоятельно, другое дело где приобретаются эти матрицы для ноутбуков. Если Вы зайдете на сайт www.5120.ru, то найдете много нужной и полезной информации.

Популярные шаблоны