Если предположить, что у меня есть a: usize
и отрицательный b:isize
как я добиваюсь следующая семантики - уменьшить по абсолютной величине Ь в быстром возможном способе?Быстрее способ добавления отрицательного подписал в беззнаковые
Я уже думал о a - (b.abs() as usize)
, но мне интересно, есть ли более быстрый способ. Может, что-то с бит-манипуляцией?
Вы беспокоитесь о потенциальных недостатках? Возможно ли, что 'a' превысит максимально допустимое значение' isize'? –
Не происходит ли переполнение, если 'a <| b |'? Я знаю о потенциальных недостатках и имеет решение, которое должно позаботиться об этом - результат будет использоваться для существенного разделения диапазона ('' '' '' '' действительно 'range.start' или' range.end' в зависимости от ' b'). Если я утверждаю, что 'range.start
Если вы хотите что-то быстрее, я надеюсь, что вы уже выполнили тесты и заметили, что это слишком медленно. Затем вы можете предоставить нам контрольные показатели, чтобы мы знали, что любое предлагаемое решение выполняется быстрее. Даже просмотр списков сборок не говорит правду. Это всегда возможно (хотя и довольно маловероятно), например, что команда 'sub' имеет массивный конвейер. – Shepmaster