LINUX.ORG.RU

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

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

Тебе не приходит в голову, что решения анонимов дадут такой-же код?

Ну это вряд ли. Такой код скорее всего быстрее будет

int32_t to_signed32_2 (uint32_t value, uint8_t bits) {
  if(bits < 32U)
  {
    return  (int32_t)(value << (32-bits)) >> (32-bits);
  }
  return value;
}
Хотя если сдвигать signed нельзя, это конечно проблема.

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

Тебе не приходит в голову, что решения анонимов дадут такой-же код?

Ну это вряд ли. Такой код скорее всего быстрее будет

int32_t to_signed32_2 (uint32_t value, uint8_t bits) {
  if(bits < 32U)
  {
    return  ((int32_t)(value << (32-bits))) >> (32-bits);
  }
  return value;
}
Хотя если сдвигать signed нельзя, это конечно проблема.