LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

(modulo 2^n where n is the number of bits used to represent the unsigned type).

Оказывается modulo - это остаток от целочисленного деления, не знал. Тогда это вообще о другом - о том, что unsigned можно спокойно переполнять, а signed нет. Но ни слова о том, что сначала - приведение размера или знака. ull = (unsigned long long)-1(long long) ИЛИ ull = (unsigned long long)-1(unsigned int).

int i = -1;
unsigned long long ull = i;
ull = i % 2^sizeof(unsigned long long);

Исходная версия pavlick, :

(modulo 2^n where n is the number of bits used to represent the unsigned type).

Оказывается modulo - это остаток от целочисленного деления, не знал. Тогда это вообще о другом - о том, что unsigned можно спокойно переполнять, а signed нет. Но не слова о том, что сначала - приведение размера или знака. ull = (unsigned long long)-1(long long) ИЛИ ull = (unsigned long long)-1(unsigned int).

int i = -1;
unsigned long long ull = i;
ull = i % 2^sizeof(unsigned long long);