Сравнение знаковых целых
От: Videoman Россия https://hts.tv/
Дата: 28.04.21 15:07
Оценка:
Чего-то заблудился в трех соснах. Дано, два длинных знаковых числа в виде size_t value[2]- в двух массивах длины 2. Отрицательные числа заданы в обратном коде, как у Intel.
Хочу правильно реализовать операцию less (<). Вроде тесты которые могу придумать работают, но чувствую что метод реализован не правильно:
if (std::make_signed_t<size_t>(value1[hi]) > std::make_signed_t<size_t>(value2[hi]))
        return false;

    if (std::make_signed_t<size_t>(value1[hi]) < std::make_signed_t<size_t>(value2[hi]))
        return true;

    if (value1[lo] > value2[lo])
        return false;

    if (value1[lo] < value2[lo])
        return true;

    return false;

Помогите кто-нибудь с контрпримером?
http://www.gravatar.com/avatar/60560936caa07b944d4c3cecf1c06cc5?s=80&d=identicon
Отредактировано 28.04.2021 15:08 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.