LINUX.ORG.RU

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

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

Хочешь извращений - пиши тесты и документацию.

согласен.

По поводу магии: https://en.wikipedia.org/wiki/SEX_(computing)

в Motorola 6809. была инструкция sex(Sign EXtend):

  1. Принимала на вход знаковое целое

  2. Если число положительное или 0 возвращала 0

  3. Если отрицательное, то возвращала число в котором все биты равны 1.

также

n ^ 0 == n

n ^ 0xFFFFFFFF == ~n

тогда приведённая строка

fLastMoveToIndex ^= ~sex(fLastMoveToIndex);

читается не сложнее чем

if (fLastMoveToIndex >= 0) {
    fLastMoveToIndex = ~fLastMoveToIndex;
}

и не воспринимается как какая-то магия…

Исправление fsb4000, :

Хочешь извращений - пиши тесты и документацию.

согласен.

По поводу магии: https://en.wikipedia.org/wiki/SEX_(computing)

в Motorola 6809. была инструкция sex(Sign EXtend):

  1. Принимала на вход знаковое целое

  2. Если число положительное возвращала 0

  3. Если отрицательное, то возвращала число в котором все биты равны 1.

также

n ^ 0 == n

n ^ 0xFFFFFFFF == ~n

тогда приведённая строка

fLastMoveToIndex ^= ~sex(fLastMoveToIndex);

читается не сложнее чем

if (fLastMoveToIndex >= 0) {
    fLastMoveToIndex = ~fLastMoveToIndex;
}

и не воспринимается как какая-то магия…

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

Хочешь извращений - пиши тесты и документацию.

согласен.

По поводу магии: https://en.wikipedia.org/wiki/SEX_(computing)

в Motorola 6809. была инструкция sex(Sign EXtend):

  1. Принимала на вход знаковое целое

  2. Если число положительное возвращала 0

  3. Если отрицательное, то возвращала число в котором все биты равны 1.

также

n ^ 0 == n

n ^ 0xFFFFFFFF == ~n

тогда приведённая строка

fLastMoveToIndex ^= ~sex(fLastMoveToIndex);

читается не сложнее чем

if (fLastMoveToIndex > 0) {
    fLastMoveToIndex = ~fLastMoveToIndex;
}

и не воспринимается как какая-то магия…